You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Admin UI toggles fail with [Errno 30] Read-only file system: '/app/config.toml' on the shipped compose.yaml #196
In the standalone admin UI, saving Allow new app logins, onboarding, and first-time vacuum connections returns HTTP 500 with [Errno 30] Read-only file system: '/app/config.toml'. The setting does not change.
I expected the toggle to persist, or at least to see a clear message that config.toml is read-only and needs to be edited on the host.
The shipped compose file mounts ./config.toml:/app/config.toml:ro (compose.yaml L12).
set_protocol_auth_enabled (L378-L386) goes through the same write path.
Home Assistant add-on
There the file is writable, but ha_addon.py regenerates /data/config.toml from options and forces both values to true (L248-L251). As far as I can tell, a UI change is lost on the next add-on restart. I haven't tested this.
PR #176 keeps the :ro mount and adds config generated from environment variables (ROBOROCK_SERVER_NEW_CONNECTIONS_ENABLED). If that config is regenerated on each start, the same persistence question applies there.
Workaround
Set [admin] new_connections_enabled in config.toml on the host and recreate the container.
Possible fix
Store admin toggles in a small writable state file under data/runtime/ that overrides [admin]. That keeps config.toml read-only and works for compose, the add-on and #176.
The minimal alternative is to catch OSError and return a 409 with a clear message.
Happy to open a PR for either.
Steps to reproduce
Deploy with the shipped compose.yaml, using the config.toml created by configure.
Open the admin UI and toggle Allow new app logins, onboarding, and first-time vacuum connections.
Save. The response is 500 with [Errno 30] Read-only file system: '/app/config.toml'.
Vacuum model
Not model-specific (seen with Roborock S8 MaxV Ultra)
Server / image version
main @ d40d67d, Docker Compose (+ compose.turn.yaml)
Activity