Title: Bug: 'internxt login' does not persist config/session in non-interactive Docker environment · Issue #389 · internxt/cli · GitHub
Open Graph Title: Bug: 'internxt login' does not persist config/session in non-interactive Docker environment · Issue #389 · internxt/cli
X Title: Bug: 'internxt login' does not persist config/session in non-interactive Docker environment · Issue #389 · internxt/cli
Description: Describe the bug The internxt login command successfully authenticates when run non-interactively (e.g., via a startup script in Docker using environment variables for credentials), but it fails to create or update the configuration file...
Open Graph Description: Describe the bug The internxt login command successfully authenticates when run non-interactively (e.g., via a startup script in Docker using environment variables for credentials), but it fails to...
X Description: Describe the bug The internxt login command successfully authenticates when run non-interactively (e.g., via a startup script in Docker using environment variables for credentials), but it fails to...
Opengraph URL: https://github.com/internxt/cli/issues/389
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Bug: 'internxt login' does not persist config/session in non-interactive Docker environment","articleBody":"**Describe the bug**\nThe `internxt login` command successfully authenticates when run non-interactively (e.g., via a startup script in Docker using environment variables for credentials), but it fails to create or update the configuration file (`config.json` or similar) in the expected persistent location (`/config` mapped via `-v` and using `XDG_CONFIG_HOME=/config`). This results in the login being lost upon container restart. The manual, interactive `internxt login` via `docker exec` *also* reports success but fails to save the configuration persistently.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Build a Docker container based on `debian:bullseye` with `nodejs` and `@internxt/cli@1.5.6` installed.\n2. Map a host volume to `/config` inside the container and set `ENV XDG_CONFIG_HOME=/config`.\n3. Run the container with `INTERNXT_EMAIL` and `INTERNXT_PASSWORD` environment variables set.\n4. Execute a startup script that runs `internxt login --email \"$INTERNXT_EMAIL\" --password \"$INTERNXT_PASSWORD\"`.\n5. Observe the logs: Login reports success (`Succesfully logged in to: ...`).\n6. Check the content of the `/config` directory (or `/config/internxt`): It remains empty.\n7. Restart the container: The startup script detects no stored login token.\n\n**Expected behavior**\nAfter a successful non-interactive or interactive `internxt login`, the `config.json` (or equivalent session file) containing the `authToken` should be reliably created/updated within the directory specified by `XDG_CONFIG_HOME`.\n\n**Actual behavior**\nLogin reports success, but no configuration file is created or updated in the persistent `/config` volume. The login state is lost on restart.\n\n**Environment:**\n* OS: Unraid (Docker Host)\n* Docker Base Image: `debian:bullseye`\n* `internxt-cli` version: `1.5.6` (installed via `npm install -g @internxt/cli@~1.5.6`)\n* Node.js version: v18\n\n**Additional context**\nWe have built a custom Unraid Docker template attempting to provide a stable WebDAV server. The full setup can be seen here: `https://github.com/syprix/unraid-internxt-cli/tree/main`\nExtensive troubleshooting confirmed network connectivity (ping, SSL cert check) is working correctly. The core issue seems to be the login command's failure to persist its state.\n\nWe initially attempted to use the latest version (`1.5.7`) but encountered a different bug where the `webdav enable` command failed with `Error: Nonexistent flags: --host, --port`, which led us to use version `1.5.6`. The login persistence issue exists in `1.5.6`.","author":{"url":"https://github.com/syprix","@type":"Person","name":"syprix"},"datePublished":"2025-10-18T11:35:16.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/389/cli/issues/389"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:06d58fd1-f115-1db1-7d9b-be877cafdce4 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 8DA0:23810A:22CFAF4:2CCE007:69928F43 |
| html-safe-nonce | c644f5f322fe10a974c25aece8e66a0fb5fac6644b37efbf1c67af83767ba2f2 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4REEwOjIzODEwQToyMkNGQUY0OjJDQ0UwMDc6Njk5MjhGNDMiLCJ2aXNpdG9yX2lkIjoiMzIwNDU0NDE2MDA5NTk2NDk5NSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 064b86597ba9598075f2db9db42fb81780a05f21e36bb758a13fabe9d9cc7bd2 |
| hovercard-subject-tag | issue:3528693462 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/internxt/cli/389/issue_layout |
| twitter:image | https://opengraph.githubassets.com/c6efba97793b4a217b29306027c29f76473a3e3194382b83885a0ddccdd35e5d/internxt/cli/issues/389 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/c6efba97793b4a217b29306027c29f76473a3e3194382b83885a0ddccdd35e5d/internxt/cli/issues/389 |
| og:image:alt | Describe the bug The internxt login command successfully authenticates when run non-interactively (e.g., via a startup script in Docker using environment variables for credentials), but it fails to... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | syprix |
| hostname | github.com |
| expected-hostname | github.com |
| None | 42c603b9d642c4a9065a51770f75e5e27132fef0e858607f5c9cb7e422831a7b |
| turbo-cache-control | no-preview |
| go-import | github.com/internxt/cli git https://github.com/internxt/cli.git |
| octolytics-dimension-user_id | 30803427 |
| octolytics-dimension-user_login | internxt |
| octolytics-dimension-repository_id | 753171546 |
| octolytics-dimension-repository_nwo | internxt/cli |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 753171546 |
| octolytics-dimension-repository_network_root_nwo | internxt/cli |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 848bc6032dcc93a9a7301dcc3f379a72ba13b96e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width