Back to Codeberg

auth: oauth login doesn't work #405

forgejo-contrib-forgejo-cli-issues-405.md

latest14.4 KB
Original Source

forgejo-contrib/forgejo-cli

Watch20

Star402

Fork

You've already forked forgejo-cli

51

CodeIssues 44Pull requests 8Releases 11Packages 2WikiActivity

auth: oauth login doesn't work #405

New issue

Closed

opened 2026-04-10 11:27:58 +02:00 by balejk · 6 comments

balejk commented 2026-04-10 11:27:58 +02:00

Copy link

Expected Behavior

After running fj -H codeberg.org auth login and authorizing the device, the login will complete successfully.

Actual Behavior

After being redirected to the localhost address, the connection refused error appears instead of the login confirmation.

I verified with ss and lsof that indeed fj doesn't listen at the expected address and I believe this is because fj hangs waiting for the browser process to exit. After I exit the browser, fj still hangs but now listens at the expected interface.

The browser is opened as a subprocess of the fj process in my case and it doesn't fork from it and I believe that blocks the auth server from starting.

Steps to Reproduce

Ensure the browser process started by fj doesn't exit before the oauth login completes (this will usually not be the case if the browser is already running as the URL will be communicated to the running instance). Attempt to authenticate via oauth.

fj Version

text

fj v0.4.1 user agent: forgejo-cli/0.4.1 (https://codeberg.org/forgejo-contrib/forgejo-cli/) build type: from source target: x86_64-unknown-linux-musl

Forgejo Version

Codeberg instance

Code of Conduct

  • I agree to act in accordance with the CoC & AI Agreement.
  • This issue was not generated by an LLM, even in part.

Expected Behavior After running fj -H codeberg.org auth login and authorizing the device, the login will complete successfully. ### Actual Behavior After being redirected to the localhost address, the connection refused error appears instead of the login confirmation. I verified with ss and lsof that indeed fj doesn't listen at the expected address and I believe this is because fj hangs waiting for the browser process to exit. After I exit the browser, fj still hangs but now listens at the expected interface. The browser is opened as a subprocess of the fj process in my case and it doesn't fork from it and I believe that blocks the auth server from starting. ### Steps to Reproduce Ensure the browser process started by fj doesn't exit before the oauth login completes (this will usually not be the case if the browser is already running as the URL will be communicated to the running instance). Attempt to authenticate via oauth. ### fj Version text ``` fj v0.4.1 user agent: forgejo-cli/0.4.1 (https://codeberg.org/forgejo-contrib/forgejo-cli/) build type: from source target: x86_64-unknown-linux-musl ``` ### Forgejo Version Codeberg instance ### Code of Conduct - [x] I agree to act in accordance with the CoC & AI Agreement. - [x] This issue was not generated by an LLM, even in part.

balejk added the Kind/Bug label 2026-04-10 11:27:58 +02:00

Cyborus commented 2026-04-10 14:52:34 +02:00

Member

Copy link

Very good bug report. I immediately got a very strong idea of what I needed to fix to resolve this, thanks to your investigate.

Could you share what browser it is you're using? I've never run into this problem on Firefox before, and closing it beforehand doesn't reproduce this for me either..

*Very* good bug report. I immediately got a very strong idea of what I needed to fix to resolve this, thanks to your investigate. Could you share what browser it is you're using? I've never run into this problem on Firefox before, and closing it beforehand doesn't reproduce this for me either..

balejk commented 2026-04-10 15:19:39 +02:00

Author

Copy link

Thank you for looking into this!

I can certainly reproduce this with Firefox. I think the difference might be caused by our application launchers, which is xdg-open in my case. If you are using something else, such as something provided by your DE, it is possible that it handles the forking whereas xdg-open doesn't seem to do that.

Thank you for looking into this! I can certainly reproduce this with Firefox. I think the difference might be caused by our application launchers, which is xdg-open in my case. If you are using something else, such as something provided by your DE, it is possible that it handles the forking whereas xdg-open doesn't seem to do that.

Cyborus commented 2026-04-10 15:35:38 +02:00

Member

Copy link

Strange, xdg-open doesn't block for me either. Since I'm unable to reproduce it, would you be able to verify that change fixes it once I make the PR?

Strange, xdg-open doesn't block for me either. Since I'm unable to reproduce it, would you be able to verify that change fixes it once I make the PR?

balejk commented 2026-04-10 16:20:32 +02:00

Author

Copy link

Yes, I should be able to test, please Cc me on the PR.

If you are interested in trying to see why you cannot reproduce it: are you sure firefox is fully closed when trying this (e. g. pgrep firefox)? What does xdg-mime query default x-scheme-handler/https return for you? Also, can you check what the process hierarchy parenting the browser process looks like (such as with htop -t)? It might also be possible that the request is being passed to your DE and firefox is being launched by that, but I'm not sure, my setup is pretty barebones.

Yes, I should be able to test, please Cc me on the PR. If you are interested in trying to see why you cannot reproduce it: are you sure firefox is fully closed when trying this (e. g. pgrep firefox)? What does xdg-mime query default x-scheme-handler/https return for you? Also, can you check what the process hierarchy parenting the browser process looks like (such as with htop -t)? It might also be possible that the request is being passed to your DE and firefox is being launched by that, but I'm not sure, my setup is pretty barebones.

Cyborus referenced this issue from a pull request that will close it, 2026-04-10 18:54:49 +02:00 fix(oauth): detach opened browser #407

Cyborus commented 2026-04-10 18:59:11 +02:00

Member

Copy link

  • pgrep firefox returns nothing when firefox is closed.
  • xdg-mime query default x-scheme-handler/https returns firefox.desktop
  • Firefox does not show as a child process of fj even when fj starts it up.

I'm guessing the difference is indeed between our DEs/WMs. I'm on KDE Plasma.

  • pgrep firefox returns nothing when firefox is closed. - xdg-mime query default x-scheme-handler/https returns firefox.desktop - Firefox does *not* show as a child process of fj even when fj starts it up. I'm guessing the difference is indeed between our DEs/WMs. I'm on KDE Plasma.

Cyborus closed this issue 2026-04-10 19:26:43 +02:00

balejk commented 2026-04-11 14:49:13 +02:00

Author

Copy link

Indeed. I don't have experience with KDE but as far as I can see, xdg-open detects that it's running under KDE and calls kde-open which I assume is where the forking happens (you can probably test that by calling kde-open https://some.url directly in the terminal).

Indeed. I don't have experience with KDE but as far as I can see, xdg-open detects that it's running under KDE and calls kde-open which I assume is where the forking happens (you can probably test that by calling kde-open https://some.url directly in the terminal).

Cyborus added this to the v0.5.0 milestone 2026-04-16 05:04:15 +02:00

Sign in to join this conversation.

No Branch/Tag specified

BranchesTags

main

renovate/lock-file-maintenance

renovate/serde-saphyr-0.x

docs/contributing

no-port-in-refspec

login/v16.next.forgejo.org

crates-io-publish

0.5.x

compile-time-fluent

0.4.x

localization-alias-demo

api_url_field

v0.5.0

v0.4.1

v0.4.0

v0.3.0

v0.2.0

v0.1.1

v0.1.0

v0.0.4

v0.0.3

v0.0.2

v0.0.1

Labels

Clear labels[ Kind/Breaking Breaking change that won't be backward compatible

](#)[ Kind/Bug Something is not working

](#)[ Kind/Design Discussion about UI/UX design

](#)[ Kind/Documentation Documentation changes

](#)[ Kind/Enhancement Improve existing functionality

](#)[ Kind/Feature New functionality

](#)[ Kind/Security This is security issue

](#)[ Kind/Testing Issue or pull request related to testing

](#)[ Kind/Upstream This is an issue with upstream software (Forgejo) that is probably not our fault

](#)

[ Priority

Critical The priority is critical

](#)[ Priority

High The priority is high

](#)[ Priority

Low The priority is low

](#)[ Priority

Medium The priority is medium

](#)

[ Reviewed

Confirmed Issue has been confirmed

](#)[ Reviewed

Duplicate This issue or pull request already exists

](#)[ Reviewed

Invalid Invalid issue

](#)[ Reviewed

Won't Fix This issue won't be fixed

](#)

[ Status

Abandoned Somebody has started to work on this but abandoned work

](#)[ Status

Blocked Something is blocking this issue or pull request

](#)[ Status

Need More Info Feedback is required to reproduce issue or to continue work

](#)

[ Suspicious

](#)

No labels Kind/Breaking Kind/Bug Kind/Design Kind/Documentation Kind/Enhancement Kind/Feature Kind/Security Kind/Testing Kind/Upstream [ Priority

Critical ](/forgejo-contrib/forgejo-cli/issues?labels=173012) [ Priority

High ](/forgejo-contrib/forgejo-cli/issues?labels=173013) [ Priority

Low ](/forgejo-contrib/forgejo-cli/issues?labels=173015) [ Priority

Medium ](/forgejo-contrib/forgejo-cli/issues?labels=173014) [ Reviewed

Confirmed ](/forgejo-contrib/forgejo-cli/issues?labels=173007) [ Reviewed

Duplicate ](/forgejo-contrib/forgejo-cli/issues?labels=173005) [ Reviewed

Invalid ](/forgejo-contrib/forgejo-cli/issues?labels=173006) [ Reviewed

Won't Fix ](/forgejo-contrib/forgejo-cli/issues?labels=173008) [ Status

Abandoned ](/forgejo-contrib/forgejo-cli/issues?labels=173011) [ Status

Blocked ](/forgejo-contrib/forgejo-cli/issues?labels=173010) [ Status

Need More Info ](/forgejo-contrib/forgejo-cli/issues?labels=173009) Suspicious

Milestone

Clear milestone

No items

No milestone v0.5.0

Projects

Clear projects

No items

No project

Assignees

Clear assignees

No assignees

2 participants

Notifications Subscribe

Due date

The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference

forgejo-contrib/forgejo-cli#405

WritePreview

Loading…

Add table

| Rows | | | Columns | |

CancelOK

Add a link

Url Description Hint: With a URL in your clipboard, you can paste directly into the editor to create a link.

CancelOK

CancelSave

Reference in a new issue

Repository

forgejo-contrib/forgejo-cli

Title

Body

Create issue

No description provided.

Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?

No Yes