Skip to content

malformed .marimo.toml fails silently #11023

Description

@Nodd

Describe the bug

I included some configuration in a pyproject.toml, which was working fine. Then to avoid cluttering this file, I tried to switch to using a .marimo.toml in the project root.

The file is correctly detected when I run marimo config show:

$ marimo config show

🏠 User config from D:\project.git\.marimo.toml

[...]

But the configuration is not applied when i run marimo edit from the same directory (I used theme = "dark" to test).
In the parameters window, I see: User configuration is stored in marimo.toml Run marimo config show in your terminal to show your current configuration and file location.
It's also ignored in marimo run.

I can keep using pyproject.toml in the meantime, but this behavior is really weird.

Will you submit a PR?

  • Yes

Environment

{
  "marimo": "0.25.0",
  "editable": false,
  "location": "D:/jmartino/Programmation/desir-proc.git/.venv/Lib/site-packages/marimo",
  "OS": "Windows",
  "OS Version": "11",
  "Processor": "Intel64 Family 6 Model 140 Stepping 1, GenuineIntel",
  "Python Version": "3.14.7",
  "Locale": "fr_FR",
  "Binaries": {
    "Browser": "154.0.8037.58",
    "Node": "--",
    "uv": "0.12.9 (9f9286029 2026-09-01 x86_64-pc-windows-msvc)"
  },
  "Dependencies": {
    "click": "8.5.0",
    "docutils": "0.23",
    "itsdangerous": "2.2.0",
    "jedi": "0.20.0",
    "markdown": "3.11",
    "narwhals": "2.26.0",
    "packaging": "26.3",
    "psutil": "7.2.2",
    "pygments": "2.21.0",
    "pymdown-extensions": "11.0.2",
    "pyyaml": "6.0.3",
    "starlette": "1.7.0",
    "tomlkit": "0.15.1",
    "typing-extensions": "4.16.0",
    "uvicorn": "0.54.0",
    "websockets": "17.1"
  },
  "Optional Dependencies": {
    "loro": "1.16.2",
    "pandas": "3.0.6",
    "pytest": "9.1.1",
    "ruff": "0.16.9"
  },
  "Experimental Flags": {}
}

Code to reproduce

No response

Activity

  1. added theissue type on Sep 29, 2026
  2. added
    bugSomething isn't working
    on Sep 29, 2026
  3. changed the title [-].marimo.toml used in maraimo config show but ignored in marimo edit[/-] [+].marimo.toml used in marimo config show but ignored in marimo edit[/+] on Sep 29, 2026
  4. kirangadhave commented on Sep 29, 2026

    @kirangadhave
    Member

    Thank you for the report @Nodd, we will take a look.

  5. marthacryan commented on Sep 30, 2026

    @marthacryan
    Contributor

    Thank you for the report @Nodd! I'm having trouble reproducing the issue.

    The text in the settings editor that says "User Configuration is stored in marimo.toml" is hard-coded to use marimo.toml, so that doesn't necessarily represent an issue (although maybe we should use the actual value rather than the hard-coded value). @Nodd:

    • Can you update the issue with your full .marimo.toml?
    • Did you remove the marimo-specific configurations from pyproject.toml? Any values set in the pyproject.toml will override the marimo.toml configs.
      • In the settings editor in the UI (the gear icon at the top right), there is an indicator next to each setting that is configured through the pyproject.toml:
      Image
  6. Nodd commented on Oct 7, 2026

    @Nodd
    Author

    Here is the full .marimo.toml :

    [runtime]
    auto_reload = "lazy"
    on_cell_change = "autorun"  # or "lazy"
    execution_type = "strict"  # or "relaxed"
    show_tracebacks = true
    
    [display]
    locale = "fr-FR"
    theme = "dark"
    reference_highlighting = true
    
    [ai]
    enabled = false
    
    [language_servers.pylsp]
    enabled = true
    enable_ruff = true
    
    [language_servers.ty]
    enabled = true
    
    [diagnostics]
    enabled = true
    
    [file_browser]
    folders = ["tests/visual"]

    I did remove the marimo-specific configurations from pyproject.toml, I also checked that there is no Overriden by pyproject.toml, I can change every value manually.

  7. Nodd commented on Oct 7, 2026

    @Nodd
    Author

    I just noticed that I omited a detail, I actually run via uv, so both commands are actually: uv run marimo config show and uv run marimo edit. That said, I get the exact same behavior after activating the venv manunally and running the commands without uv run.

  8. Nodd commented on Oct 7, 2026

    @Nodd
    Author

    If I change some settings in the GUI, the .marimo.toml file is correctly overriden. But if I restart marimo afterwards, the settings are still not read. It seems that the configuration points towards the correct file, but it's not loaded on startup.

    I tried to remove (rename) pyproject.toml in case the existence of the file would have an impact, but the behavior doesn't change.

  9. marthacryan commented on Oct 7, 2026

    @marthacryan
    Contributor

    Oh ok I was able to reproduce this by using your .marimo.toml. It looks like the issue is that one of your config values (folders) is formatted incorrectly and the entire config is not being used because of that. I'll keep this issue open because marimo should be warning users about malformed configs through both marimo config show and marimo edit, but in the meantime, fixing the format of that config should unblock you:

    [file_browser]
    folders = [{ path = "/absolute/path/to/tests/visual" }]
    
  10. kirangadhave commented on Oct 7, 2026

    @kirangadhave
    Member

    @marthacryan I recommend either updating the description or create new + close this one to track the work for warning malformed configs.

  11. changed the title [-].marimo.toml used in marimo config show but ignored in marimo edit[/-] [+]malformed .marimo.toml fails silently[/+] on Oct 7, 2026
  12. changed the title [-]malformed .marimo.toml fails silently[/-] [+]malformed `.marimo.toml` fails silently[/+] on Oct 7, 2026
  13. Nodd commented on Oct 7, 2026

    @Nodd
    Author

    Thank you for finding the problem, I'll be able to confirm the fix tomorrow.

    What I don't understand is that when I changed the configuration via the GUI and saw that it changed the .marimo.toml file, when I tried to reload it it still didn't load the new paramters, but in this case the file is written by marimo so it should be correct. I'll double check this specifically to be sure.

  14. Nodd commented on Oct 8, 2026

    @Nodd
    Author

    I confirmed that the correction of the files enables to load the config file correctly, thank you again! Still, it would be nice to not fail silently on a malformed file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions