Linux: settings.json (SellerId/TenantId/ClientId) not visible to any subsequent msstore invocation after reconfigure, despite file being correctly written
@isourabh is already working on this.
Since Sep 10, 2026.
- #183 by @copilot-swe-agent — closed without merging
Assessment
This issue has not been assessed yet.
Description
Environment
MSStoreCLI-linux-x64.tar.gzfrom the latest release (v0.4.2, commit9731b77)- Runner: GitHub Actions
ubuntu-latest - Invoked non-interactively inside a
dbus-run-sessionwith a freshly-unlocked ephemeralgnome-keyring(headless Linux needs a Secret Service forreconfigure's credential write — that part works correctly once bootstrapped)
Repro
msstore reconfigure --verbose \
--tenantId "$TENANT_ID" --sellerId "$SELLER_ID" \
--clientId "$CLIENT_ID" --clientSecret "$CLIENT_SECRET"
# → "Configuration saved!" / "Awesome! It seems to be working!" (success)
cat "$(dirname "$(msstore info --verbose 2>&1 | grep -oP '(?<=Settings File Path: ).*' || true)")"/settings.json
# confirmed present, valid JSON, correct values (see below)
msstore info --verbose
# → crit: MSStore.CLI.Program[0] SellerId is not set. (exit 255)
Any second msstore invocation after a successful reconfigure fails identically — this isn't specific to publish. msstore info (read-only, no side effects beyond loading+printing the config) fails the exact same way.
What I've directly confirmed, not assumed
reconfigurewrites a complete, validsettings.json. Read the file directly (same shell, immediately afterreconfigureexits, before the nextmsstoreinvocation):{"SellerId":<real int>,"TenantId":"<real guid>","ClientId":"<real guid>"}— fully populated, valid JSON.- The file is confirmed present and readable via
ls -laat the exact moment right before the next invocation starts — same shell, samepwd, non-empty, correct permissions/owner. XDG_DATA_HOMEhas no effect. Exported it explicitly (export XDG_DATA_HOME="$HOME/.local/share") across two separate runs — the resolved settings path was identical with or without it.- CWD/workspace-path complexity ruled out. Tried both the (deeply-nested) GitHub Actions workspace path and a short, flat, explicit
cd /tmp/msstore-cwdbefore every invocation. Bothreconfigureand the failing second invocation report the identicalContent root pathin their own--verboselogs each time. Same failure either way. - No exception is ever logged. With
--verboseon, I'd expect to see"Something in the config file seems wrong..."(fromMicrosoftStoreCLI.InitAsync's catch block aroundLoadAsync) if deserialization threw. It never appears — only the direct"SellerId is not set."critical log. PerConfigurationManager<T>.LoadAsync(clearInvalidConfig: falseis whatInitAsyncpasses), the only way to reachconfig.SellerId == nullwith no exception logged isFile.Exists(_settingsPath)returningfalsefor that second process — despite point 2 above showing the file present via a shell command in the identical working directory milliseconds earlier.
Question for maintainers
Given (1)-(5), this looks like Environment.SpecialFolder.LocalApplicationData (or the File.Exists check specifically) resolving non-deterministically or incorrectly between separate process invocations of the self-contained Linux build — not anything under the caller's control (env vars, CWD, timing all ruled out as far as I can test from the outside). Is this a known issue with the self-contained/AOT Linux build specifically? Happy to provide any additional diagnostics if there's something specific you'd like captured (e.g. strace of the File.Exists/stat calls, if that's useful) — I don't have visibility past what the CLI's own --verbose output and shell-level file checks can show.
- Dominant language
- C#
- Stars
- 163
- Forks
- 22
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 6
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/msstore-cli
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
microsoft/msstore-cli#179 ·
-
bug
microsoft/msstore-cli#176 · 1 reaction · 2 assignees ·
-
Delete app command Openinvalid
Difficulty 3/5 1-2 days Newbie friendliness 64/100
microsoft/msstore-cli#171 · 4 comments ·
-
Limit on 100 apps Open
Difficulty 3/5 1-2 days Newbie friendliness 55/100
microsoft/msstore-cli#170 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
microsoft/msstore-cli#143 · 2 comments ·
All issues in microsoft/msstore-cli
Similar issues
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
t/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
ci-failure-cause test-failure
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
area:auth FE mvp P3
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
klasolsson81/jobbliggaren#1788 ·