After many trial and error, this is the work-around I have found.
First of all, regardless of what I do to the repo, a reboot always leads to this error combo
[manager] could not verify installer exit code: open /app/install_status: no such file or directory
[manager] Error during processing dependencies! Please fix the error and push an update, or try restarting the app.
[manager] Streamlit server consistently failed status checks
This error can be resolved by making any change to .streamlit/config.toml
. It doesn’t even have to contain anything (i.e. headless = true
is not necessary). Just type a new line, commit it, and push it to the repo. Then I have this log
[manager] Error checking Streamlit healthz: Get “http://localhost:8501/healthz”: dial tcp 127.0.0.1:8501: connect: connection refused
2021-04-20 18:34:15.679 An update to the [server] config option section was detected. To have these changes be reflected, please restart streamlit.
[client] Connecting…
And the app is up and running.
I also tried making trivial changes to other part of the app, but none of them resolves the issue. Therefore, in my case, I have to make change to the config file to rescue the app.
P.S.
If headless = true
is included in .streamlit/config.toml
, the log shown after the initial failure becomes
[client] Provisioning machine…
2021-04-20 18:48:14.597 An update to the [server] config option section was detected. To have these changes be reflected, please restart streamlit.
[client] Preparing system…
[client] Spinning up manager process…
[client] Connecting…
This seems to me a more friendly log, so I would recommend put headless = true
in the config file.
P.P.S.
Once the app is running, further changes to any files in the repo do not seem to cause any problem. But the config file trick is needed each time the app is rebooted.