Config/settings_data.json not syncing to local files with --theme-editor-sync

I have reproduced the issue on the latest CLI version.

Yes, I am on the latest version

I have searched existing posts and this report is not a duplicate.

Yes, this isn’t a duplicate

In which of these areas are you experiencing a problem?

Theme

Expected behavior

Any save action in the theme editor that modifies config/settings_data.json is logged in the terminal and immediately written to the local file, consistent with the behavior of all other synced files and with the documented purpose of --theme-editor-sync.

Actual behavior

When running shopify theme dev --theme-editor-sync, changes made via the browser theme editor to most files are correctly logged in the terminal and written back to local files. However, changes that would normally be stored in config/settings_data.json — such as color scheme selections, section toggles, and other theme editor settings — are silently not synced to the local filesystem in real time.

As a result, every new session starts with a conflict prompt, and any unsaved settings are permanently lost once the development theme expires.

-No terminal output is produced when config/settings_data.json is modified via the browser editor.
-The local file is never updated during the session.
-Every new session starts with a local/remote conflict prompt for this specific file.
-If the development theme expires before the developer pulls, all theme editor changes are permanently lost — shopify theme pull cannot recover them.

Reproduction steps

1- Start a local dev session with the flag: shopify theme dev --theme-editor-sync

2- Open the theme editor URL printed in the terminal.

3- Make any change that would be written to config/settings_data.json — for example, change a color scheme, toggle a setting in a section, or modify any theme editor field.

4- Click Save in the theme editor.

5- Observe the terminal — no sync activity is logged for settings_data.json.

6- Close and restart the session with the same command. The CLI immediately shows a conflict prompt:
The files listed below differ between the local and remote versions.
What would you like to do?
• config/settings_data.json

Verbose output

Last login: Sat Jun 6 11:17:01 on ttys000
adria@MacBook-Pro-de-Adri ~ % cd “/Users/adria/Documents/DEUS CRATE/Web/Shopify Themes/Horizon 1”
adria@MacBook-Pro-de-Adri Horizon 1 % shopify theme dev --theme-editor-sync --verbose
2026-06-06T09:45:18.450Z: Running command theme dev
2026-06-06T09:45:18.465Z: Ensuring that the user is authenticated with the Theme API
2026-06-06T09:45:18.466Z: Getting session store…
2026-06-06T09:45:18.467Z: Validating existing session against the scopes
2026-06-06T09:45:18.467Z: - Token validation → It’s expired: false
2026-06-06T09:45:18.467Z: Getting development theme…
2026-06-06T09:45:19.047Z: Setting development theme…

[… initial file reads for all theme assets (assets/, config/, layout/, locales/, sections/, blocks/, snippets/, templates/) …]

2026-06-06T09:45:20.267Z: Initiating theme asset reconciliation process

╭─ info ───────────────────────────────────────────────────────────────────────╮
│ │
│ The files listed below differ between the local and remote versions. What │
│ would you like to do? │
│ • config/settings_data.json │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯

? Reconciliation Strategy:
:check_mark: Keep the remote version

2026-06-06T09:45:27.511Z: Sending “Admin” GraphQL request: getThemeFileBodies
filenames: [“config/settings_data.json”]
2026-06-06T09:45:27.816Z: Request completed in 304 ms
2026-06-06T09:45:27.816Z: Writing some content to file at config/settings_data.json…

[… full checksum sync to verify file states …]

2026-06-06T09:45:28.537Z: Listening for changes in the theme editor
2026-06-06T09:45:28.541Z: Files to be uploaded: (none)
2026-06-06T09:45:28.551Z: Files to be deleted: (none)

╭─ success ────────────────────────────────────────────────────────────────────╮
│ Preview your theme: http://127.0.0.1:9292
│ Customize your theme at the theme editor (e) │
╰──────────────────────────────────────────────────────────────────────────────╯

– SESSION ACTIVE: theme editor opened in browser –
– Several changes made to theme settings (color scheme, section settings) –
– Saved in browser theme editor –

[NOTE: No terminal activity logged for config/settings_data.json after save.
The polling loop below continues but never detects or syncs settings_data.json changes.]

2026-06-06T09:45:31.564Z: Sending “Admin” GraphQL request: getThemeFileChecksums (poll #1)
2026-06-06T09:45:31.810Z: Request completed in 245 ms — no changes detected
2026-06-06T09:45:35.030Z: Sending “Admin” GraphQL request: getThemeFileChecksums (poll #2)
2026-06-06T09:45:35.534Z: Request completed in 220 ms — no changes detected
2026-06-06T09:45:38.537Z: Sending “Admin” GraphQL request: getThemeFileChecksums (poll #3)
2026-06-06T09:45:38.981Z: Request completed in 218 ms — no changes detected

[… polling continues every ~3s, config/settings_data.json is never detected as changed …]

– Meanwhile, a local file edit was made to sections/header-group.json –

2026-06-06T09:47:15.284Z: Sending “Admin” GraphQL request: getThemeFileChecksums
2026-06-06T09:47:15.284Z: Reading the content of file at sections/header-group.json…
2026-06-06T09:47:15.284Z: Reading the content of file at templates/product.new-pdp.json…
2026-06-06T09:47:15.287Z: Sending “Admin” GraphQL request: themeFilesUpsert
filenames: [“sections/header-group.json”, “templates/product.new-pdp.json”]
[file content truncated for brevity]
2026-06-06T09:47:16.773Z: Request completed in 644 ms
• 11:47:16 Synced » update sections/header-group.json
• 11:47:17 Synced » update templates/product.new-pdp.json

[NOTE: Local → remote sync works correctly for .liquid and .json section files.
config/settings_data.json changes made in the browser are never written back locally.]

Operating system

Mac OS 26.3.1

CLI version

4.1.0

Nodejs version

v26.0.0

Interesting, I wasn’t able to reproduce this:

shopify theme dev -t 219844902934 --theme-editor-sync

╭─ success ────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                  │
│  Preview your theme (t)                                                                          │
│    • [1]                                                                                         │
│                                                                                                  │
│  Next steps                                                                                      │
│    • Share your theme preview (p) [2]                                                            │
│      https://<SNIP>.myshopify.com/?preview_theme_id=<SNIP>                                       │
│    • Customize your theme at the theme editor (e) [3]                                            │
│    • Preview your gift cards (g) [4]                                                             │
│                                                                                                  │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
<SNIP>

• 14:03:46 Synced » download config/settings_data.json from remote theme

Does this happen in every session?