🐛 Bug Report: Frontend startup takes a long time without internet connection #319

Closed
opened 2025-10-09 16:39:31 +03:00 by OVERLORD · 8 comments
Owner

Originally created by @nebula-it on GitHub.

Reproduction steps

Restart existing docker container when the host does
It seems like some non async process is trying to reach out to internet and hence failing to startup for a long time.

In similar vein, please add an option to disable the update check as I see the errors logs for that constantly.

    },
    _currentUrl: 'https://api.github.com/repos/pocket-id/pocket-id/releases/latest',
    [Symbol(shapeMode)]: true,
    [Symbol(kCapture)]: false
  },
  cause: Error: connect ETIMEDOUT 140.82.114.6:443
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1634:16) {
    errno: -110,
    code: 'ETIMEDOUT',
    syscall: 'connect',
    address: '140.82.114.6',
    port: 443
  }
}

Expected behavior

  • Startup should not be impacted by internet availability

Actual Behavior

Frontend takes a long time to come up, the webUI for pocketID settings does not work when this happens. However the SSO still works.

Version and Environment

v0.36

Log Output

No response

Originally created by @nebula-it on GitHub. ### Reproduction steps Restart existing docker container when the host does It seems like some non async process is trying to reach out to internet and hence failing to startup for a long time. In similar vein, please add an option to disable the update check as I see the errors logs for that constantly. ``` }, _currentUrl: 'https://api.github.com/repos/pocket-id/pocket-id/releases/latest', [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false }, cause: Error: connect ETIMEDOUT 140.82.114.6:443 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1634:16) { errno: -110, code: 'ETIMEDOUT', syscall: 'connect', address: '140.82.114.6', port: 443 } } ``` ### Expected behavior * Startup should not be impacted by internet availability ### Actual Behavior Frontend takes a long time to come up, the webUI for pocketID settings does not work when this happens. However the SSO still works. ### Version and Environment v0.36 ### Log Output _No response_
OVERLORD added the bug label 2025-10-09 16:39:31 +03:00
Author
Owner

@kmendell commented on GitHub:

My guess is the the issue here is the update check , as i don't think anything else checks out besides that. Unless you are seeing more logs than just those?

@kmendell commented on GitHub: My guess is the the issue here is the update check , as i don't think anything else checks out besides that. Unless you are seeing more logs than just those?
Author
Owner

@kmendell commented on GitHub:

If the evironment is air gapped, how is the container updating? or how would you know if there is a update? ive never ran stuff (espeically oidc providers) in a air-gapped environment, as external services i use need to access the oidc server.

@kmendell commented on GitHub: If the evironment is air gapped, how is the container updating? or how would you know if there is a update? ive never ran stuff (espeically oidc providers) in a air-gapped environment, as external services i use need to access the oidc server.
Author
Owner

@stonith404 commented on GitHub:

The update check now times out after two seconds.

@stonith404 commented on GitHub: The update check now times out after two seconds.
Author
Owner

@nebula-it commented on GitHub:

@stonith404 Tested and yes it works. Thank you for quick turn around. However, I'd recommend to add an env var DISABLE_UPDATE_CHECK and if its set to true the update check should not run.

@nebula-it commented on GitHub: @stonith404 Tested and yes it works. Thank you for quick turn around. However, I'd recommend to add an env var `DISABLE_UPDATE_CHECK` and if its set to true the update check should not run.
Author
Owner

@nebula-it commented on GitHub:

In my case, its not exactly air-gapped, just a more locked down environment. PocketID runs in k8s and I have a default deny network policy for all pods/containers, so only allowed traffic is able to get out of the container. And only traffic allowed to container is from the nginx on port 3000 and 8080.

For the update, its done automatically using renovate-bot that updates the image tag and pushes a PR. If that PR is approved argoCD auto deploys the updated version. So app/container itself does not need to check for updates.
Hope that clears it, but feel free to ask if you have anymore questions.
Also, I just wanted to say thanks for such a great project. I was amazed that I could get the SSO stuff setup withing 10mins unlike hours in past.

@nebula-it commented on GitHub: In my case, its not exactly air-gapped, just a more locked down environment. PocketID runs in k8s and I have a default deny network policy for all pods/containers, so only allowed traffic is able to get out of the container. And only traffic allowed to container is from the nginx on port 3000 and 8080. For the update, its done automatically using renovate-bot that updates the image tag and pushes a PR. If that PR is approved argoCD auto deploys the updated version. So app/container itself does not need to check for updates. Hope that clears it, but feel free to ask if you have anymore questions. Also, I just wanted to say thanks for such a great project. I was amazed that I could get the SSO stuff setup withing 10mins unlike hours in past.
Author
Owner

@stonith404 commented on GitHub:

Yeah I think that would make sense. It should be pretty easy to implement.

@stonith404 commented on GitHub: Yeah I think that would make sense. It should be pretty easy to implement.
Author
Owner

@kmendell commented on GitHub:

I created https://github.com/pocket-id/pocket-id/issues/310, just to track this so we dont forget.

@kmendell commented on GitHub: I created https://github.com/pocket-id/pocket-id/issues/310, just to track this so we dont forget.
Author
Owner

@kmendell commented on GitHub:

Ahh okay gotcha, I can see the use case for this, though im going to defer to @stonith404 for the final decsion on it. :)

@kmendell commented on GitHub: Ahh okay gotcha, I can see the use case for this, though im going to defer to @stonith404 for the final decsion on it. :)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pocket-id-pocket-id-2#319