Onboarding popups keep coming back if user saving fails validation
Describe the bug There is the new onboarding overlay that explains the main UI elements. Whenever I load up the site again, this pops up again.
To Reproduce Steps to reproduce the behavior:
- Load up the main manyfold page
- The "Welcome to Manyfold!" popup appears, guiding through 6 steps to explore the main UI
- Finish the 6 steps
- reload the main manyfold page
- the popup reappears
Expected behavior I expect that popup to only appear once.
Screenshots
Desktop (please complete the following information):
- OS: MacOS
- Browser Vivaldi
- Version Manyfold version 0.129.0 (4d981951)
Additional context There should probably be some toggle in the user preferences to disable / re-enable this?
That's not right, they certainly shouldn't be coming back! There must be something going on that's stopping it saving the state. Can you see anything happening in the manyfold docker log when you close the last popup?
Also, (if you're OK to check this) you might be able to see something showing an error in the developer console networking tab; again, when you finish the tour, it should send an update to the server saying you've finished it. Is there anything coming up as an error there?
that's a fast reaction, awesome!
There are log entries, but I can't make heads nor tails from them:
date stream content 2025/11/11 13:47:24 stdout 12:47:24 rails.1 | [59c03bc0-3b3c-4b5b-9a51-7fb61e62db3c] {"method":"PATCH","path":"/users.json","format":"json","controller":"Users::RegistrationsController","action":"update","status":422,"allocations":4357,"duration":20.45,"view":0.97,"db":7.39,"@timestamp":"2025-11-11T12:47:24.729Z","@version":"1","message":"[422] PATCH /users.json (Users::RegistrationsController#update)"} 2025/11/11 13:47:24 stdout 12:47:24 rails.1 | /usr/src/app/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.2.1/lib/action_controller/metal/rendering.rb:235: warning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack. Please use :unprocessable_content instead. 2025/11/11 13:47:04 stdout 12:47:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.45, five_min: 0.47, fifteen_min: 0.4}, memory: 0.209862656e9, disk: {available: 9696964513792, total: 23029958242304, used: 13332993728512}} 2025/11/11 13:47:04 stdout 12:47:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.45, five_min: 0.47, fifteen_min: 0.4}, memory: 0.285175808e9, disk: {available: 9696964513792, total: 23029958242304, used: 13332993728512}} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":71,"duration":0.43,"@timestamp":"2025-11-11T12:46:55.285Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":71,"duration":0.26,"@timestamp":"2025-11-11T12:46:55.287Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":71,"duration":0.31,"@timestamp":"2025-11-11T12:46:55.286Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.32,"@timestamp":"2025-11-11T12:46:55.330Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.32,"@timestamp":"2025-11-11T12:46:55.328Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.33,"@timestamp":"2025-11-11T12:46:55.327Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.33,"@timestamp":"2025-11-11T12:46:55.325Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.33,"@timestamp":"2025-11-11T12:46:55.323Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.3,"@timestamp":"2025-11-11T12:46:55.322Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.31,"@timestamp":"2025-11-11T12:46:55.320Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.36,"@timestamp":"2025-11-11T12:46:55.318Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.35,"@timestamp":"2025-11-11T12:46:55.314Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.46,"@timestamp":"2025-11-11T12:46:55.308Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.4,"@timestamp":"2025-11-11T12:46:55.301Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.36,"@timestamp":"2025-11-11T12:46:55.299Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.32,"@timestamp":"2025-11-11T12:46:55.297Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.3,"@timestamp":"2025-11-11T12:46:55.295Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.31,"@timestamp":"2025-11-11T12:46:55.293Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.35,"@timestamp":"2025-11-11T12:46:55.292Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.62,"@timestamp":"2025-11-11T12:46:55.284Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":{},"controller":"ActionCable::Connection::Base","action":"connect","status":200,"allocations":23,"duration":0.33,"@timestamp":"2025-11-11T12:46:55.256Z","@version":"1","message":"[200] (ActionCable::Connection::Base#connect)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":{},"controller":"ActionCable::Connection::Base","action":"disconnect","status":200,"allocations":2007,"duration":7.34,"@timestamp":"2025-11-11T12:46:55.143Z","@version":"1","message":"[200] (ActionCable::Connection::Base#disconnect)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.09,"@timestamp":"2025-11-11T12:46:55.142Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.1,"@timestamp":"2025-11-11T12:46:55.142Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.08,"@timestamp":"2025-11-11T12:46:55.142Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.08,"@timestamp":"2025-11-11T12:46:55.142Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.09,"@timestamp":"2025-11-11T12:46:55.142Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.08,"@timestamp":"2025-11-11T12:46:55.142Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.09,"@timestamp":"2025-11-11T12:46:55.141Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.13,"@timestamp":"2025-11-11T12:46:55.141Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.78,"@timestamp":"2025-11-11T12:46:55.141Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.09,"@timestamp":"2025-11-11T12:46:55.140Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.09,"@timestamp":"2025-11-11T12:46:55.140Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.12,"@timestamp":"2025-11-11T12:46:55.139Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.17,"@timestamp":"2025-11-11T12:46:55.139Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.16,"@timestamp":"2025-11-11T12:46:55.139Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.16,"@timestamp":"2025-11-11T12:46:55.138Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.16,"@timestamp":"2025-11-11T12:46:55.138Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.16,"@timestamp":"2025-11-11T12:46:55.138Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.21,"@timestamp":"2025-11-11T12:46:55.137Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.26,"@timestamp":"2025-11-11T12:46:55.137Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"unsubscribe","status":200,"allocations":34,"duration":0.16,"@timestamp":"2025-11-11T12:46:55.136Z","@version":"1","message":"[200] (Turbo::StreamsChannel#unsubscribe)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | [b60c6403-1607-4417-aebf-6fdbc1abdd0e] {"method":"GET","path":"/","format":"html","controller":"HomeController","action":"index","status":200,"allocations":116590,"duration":475.35,"view":261.58,"db":209.29,"@timestamp":"2025-11-11T12:46:55.109Z","@version":"1","message":"[200] GET / (HomeController#index)"} 2025/11/11 13:46:55 stdout 12:46:55 rails.1 | [b60c6403-1607-4417-aebf-6fdbc1abdd0e] Scoped order is ignored, use :cursor with :order to configure custom order. 2025/11/11 13:46:54 stdout 12:46:54 rails.1 | HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE manyfold REFRESH COLLATION VERSION, or build PostgreSQL with the right library version. 2025/11/11 13:46:54 stdout 12:46:54 rails.1 | DETAIL: The database was created using collation version 2.36, but the operating system provides version 2.41. 2025/11/11 13:46:54 stdout 12:46:54 rails.1 | WARNING: database "manyfold" has a collation version mismatch 2025/11/11 13:46:53 stdout 12:46:53 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.39, five_min: 0.46, fifteen_min: 0.4}, memory: 0.232660992e9, disk: {available: 9696956186624, total: 23029958242304, used: 13333002055680}} 2025/11/11 13:46:04 stdout 12:46:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.52, five_min: 0.48, fifteen_min: 0.4}, memory: 0.20994048e9, disk: {available: 9696956231680, total: 23029958242304, used: 13333002010624}} 2025/11/11 13:46:04 stdout 12:46:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.52, five_min: 0.48, fifteen_min: 0.4}, memory: 0.285208576e9, disk: {available: 9696956231680, total: 23029958242304, used: 13333002010624}} 2025/11/11 13:45:53 stdout 12:45:53 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.59, five_min: 0.49, fifteen_min: 0.4}, memory: 0.232660992e9, disk: {available: 9696956227584, total: 23029958242304, used: 13333002014720}} 2025/11/11 13:45:34 stdout 12:45:34 rails.1 | [75a76cfe-fca6-44af-83a2-1b36181f9b9e] {"method":"PATCH","path":"/users.json","format":"json","controller":"Users::RegistrationsController","action":"update","status":422,"allocations":8227,"duration":76.82,"view":0.6,"db":56.99,"@timestamp":"2025-11-11T12:45:34.612Z","@version":"1","message":"[422] PATCH /users.json (Users::RegistrationsController#update)"} 2025/11/11 13:45:34 stdout 12:45:34 rails.1 | /usr/src/app/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.2.1/lib/action_controller/metal/rendering.rb:235: warning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack. Please use :unprocessable_content instead. 2025/11/11 13:45:34 stdout 12:45:34 rails.1 | HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE manyfold REFRESH COLLATION VERSION, or build PostgreSQL with the right library version. 2025/11/11 13:45:34 stdout 12:45:34 rails.1 | DETAIL: The database was created using collation version 2.36, but the operating system provides version 2.41. 2025/11/11 13:45:34 stdout 12:45:34 rails.1 | WARNING: database "manyfold" has a collation version mismatch 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":71,"duration":0.23,"@timestamp":"2025-11-11T12:45:13.580Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":71,"duration":0.23,"@timestamp":"2025-11-11T12:45:13.580Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":71,"duration":0.31,"@timestamp":"2025-11-11T12:45:13.579Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.19,"@timestamp":"2025-11-11T12:45:13.598Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.18,"@timestamp":"2025-11-11T12:45:13.597Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.21,"@timestamp":"2025-11-11T12:45:13.596Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.21,"@timestamp":"2025-11-11T12:45:13.595Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.21,"@timestamp":"2025-11-11T12:45:13.594Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.22,"@timestamp":"2025-11-11T12:45:13.593Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.25,"@timestamp":"2025-11-11T12:45:13.592Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.19,"@timestamp":"2025-11-11T12:45:13.590Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.23,"@timestamp":"2025-11-11T12:45:13.589Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.25,"@timestamp":"2025-11-11T12:45:13.588Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.29,"@timestamp":"2025-11-11T12:45:13.587Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.16,"@timestamp":"2025-11-11T12:45:13.584Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.18,"@timestamp":"2025-11-11T12:45:13.584Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.17,"@timestamp":"2025-11-11T12:45:13.582Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.13,"@timestamp":"2025-11-11T12:45:13.581Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":55,"duration":0.27,"@timestamp":"2025-11-11T12:45:13.578Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":null,"controller":"Turbo::StreamsChannel","action":"subscribe","status":200,"allocations":54,"duration":0.32,"@timestamp":"2025-11-11T12:45:13.570Z","@version":"1","message":"[200] (Turbo::StreamsChannel#subscribe)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | {"method":null,"path":null,"format":null,"params":{},"controller":"ActionCable::Connection::Base","action":"connect","status":200,"allocations":23,"duration":0.1,"@timestamp":"2025-11-11T12:45:13.565Z","@version":"1","message":"[200] (ActionCable::Connection::Base#connect)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | [8fffe4c6-f1bb-49c9-8225-36e6a11be30a] {"method":"GET","path":"/","format":"html","controller":"HomeController","action":"index","status":200,"allocations":116948,"duration":480.42,"view":266.62,"db":203.4,"@timestamp":"2025-11-11T12:45:13.291Z","@version":"1","message":"[200] GET / (HomeController#index)"} 2025/11/11 13:45:13 stdout 12:45:13 rails.1 | [8fffe4c6-f1bb-49c9-8225-36e6a11be30a] Scoped order is ignored, use :cursor with :order to configure custom order. 2025/11/11 13:45:12 stdout 12:45:12 rails.1 | HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE manyfold REFRESH COLLATION VERSION, or build PostgreSQL with the right library version. 2025/11/11 13:45:12 stdout 12:45:12 rails.1 | DETAIL: The database was created using collation version 2.36, but the operating system provides version 2.41. 2025/11/11 13:45:12 stdout 12:45:12 rails.1 | WARNING: database "manyfold" has a collation version mismatch 2025/11/11 13:45:04 stdout 12:45:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 1.25, five_min: 0.57, fifteen_min: 0.43}, memory: 0.210051072e9, disk: {available: 9696956293120, total: 23029958242304, used: 13333001949184}} 2025/11/11 13:45:04 stdout 12:45:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 1.25, five_min: 0.57, fifteen_min: 0.43}, memory: 0.285241344e9, disk: {available: 9696956293120, total: 23029958242304, used: 13333001949184}} 2025/11/11 13:44:53 stdout 12:44:53 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.37, five_min: 0.36, fifteen_min: 0.36}, memory: 0.232660992e9, disk: {available: 9696956456960, total: 23029958242304, used: 13333001785344}} 2025/11/11 13:44:04 stdout 12:44:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.37, five_min: 0.37, fifteen_min: 0.36}, memory: 0.210239488e9, disk: {available: 9696956645376, total: 23029958242304, used: 13333001596928}} 2025/11/11 13:44:04 stdout 12:44:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.37, five_min: 0.37, fifteen_min: 0.36}, memory: 0.285253632e9, disk: {available: 9696956645376, total: 23029958242304, used: 13333001596928}} 2025/11/11 13:43:53 stdout 12:43:53 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.38, five_min: 0.37, fifteen_min: 0.36}, memory: 0.232660992e9, disk: {available: 9696956837888, total: 23029958242304, used: 13333001404416}} 2025/11/11 13:43:04 stdout 12:43:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.49, five_min: 0.38, fifteen_min: 0.36}, memory: 0.210313216e9, disk: {available: 9696956915712, total: 23029958242304, used: 13333001326592}} 2025/11/11 13:43:04 stdout 12:43:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.49, five_min: 0.38, fifteen_min: 0.36}, memory: 0.28526592e9, disk: {available: 9696956915712, total: 23029958242304, used: 13333001326592}} 2025/11/11 13:42:53 stdout 12:42:53 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.43, five_min: 0.36, fifteen_min: 0.35}, memory: 0.232660992e9, disk: {available: 9696957005824, total: 23029958242304, used: 13333001236480}} 2025/11/11 13:42:04 stdout 12:42:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.33, five_min: 0.35, fifteen_min: 0.35}, memory: 0.210407424e9, disk: {available: 9696957325312, total: 23029958242304, used: 13333000916992}} 2025/11/11 13:42:04 stdout 12:42:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.33, five_min: 0.35, fifteen_min: 0.35}, memory: 0.285360128e9, disk: {available: 9696957325312, total: 23029958242304, used: 13333000916992}} 2025/11/11 13:41:52 stdout 12:41:52 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.32, five_min: 0.35, fifteen_min: 0.35}, memory: 0.232660992e9, disk: {available: 9696957321216, total: 23029958242304, used: 13333000921088}} 2025/11/11 13:41:04 stdout 12:41:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.41, five_min: 0.36, fifteen_min: 0.35}, memory: 0.210464768e9, disk: {available: 9696957411328, total: 23029958242304, used: 13333000830976}} 2025/11/11 13:41:04 stdout 12:41:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.41, five_min: 0.36, fifteen_min: 0.35}, memory: 0.285138944e9, disk: {available: 9696957411328, total: 23029958242304, used: 13333000830976}} 2025/11/11 13:40:52 stdout 12:40:52 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.44, five_min: 0.36, fifteen_min: 0.35}, memory: 0.232660992e9, disk: {available: 9696957431808, total: 23029958242304, used: 13333000810496}} 2025/11/11 13:40:04 stdout 12:40:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.22, five_min: 0.31, fifteen_min: 0.33}, memory: 0.210264064e9, disk: {available: 9696957554688, total: 23029958242304, used: 13333000687616}} 2025/11/11 13:40:04 stdout 12:40:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.22, five_min: 0.31, fifteen_min: 0.33}, memory: 0.285138944e9, disk: {available: 9696957554688, total: 23029958242304, used: 13333000687616}} 2025/11/11 13:39:52 stdout 12:39:52 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.19, five_min: 0.31, fifteen_min: 0.33}, memory: 0.232660992e9, disk: {available: 9696957648896, total: 23029958242304, used: 13333000593408}} 2025/11/11 13:39:04 stdout 12:39:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.21, five_min: 0.33, fifteen_min: 0.34}, memory: 0.210432e9, disk: {available: 9696957739008, total: 23029958242304, used: 13333000503296}} 2025/11/11 13:39:04 stdout 12:39:04 default_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.21, five_min: 0.33, fifteen_min: 0.34}, memory: 0.285138944e9, disk: {available: 9696957739008, total: 23029958242304, used: 13333000503296}} 2025/11/11 13:38:52 stdout 12:38:52 rails.1 | Server: manyfold, Context: rails, Role: web, data: {cpu: {one_min: 0.27, five_min: 0.35, fifteen_min: 0.35}, memory: 0.232660992e9, disk: {available: 9696957755392, total: 23029958242304, used: 13333000486912}} 2025/11/11 13:38:04 stdout 12:38:04 performance_worker.1 | Server: manyfold, Context: sidekiq, Role: background, data: {cpu: {one_min: 0.24, five_min: 0.35, fifteen_min: 0.35}, memory: 0.210538496e9, disk: {available: 9696958033920, total: 23029958242304, used: 13333000208384}}
The developer console shows this when I hit done in the last popup:
That's perfect, thank you, I can work with that :)
If you go to your account preferences and hit "save", does that (a) work, and (b) make any difference to the tour?
No, and no. It complains that "Account name has already been taken"
Same error message in the console.
Aha! That's the cause then... interesting, not sure why or how it's got into that state, but it does explain why it can't remember what you've done. A couple more followup questions:
- Are you in single user or multiuser mode?
- Do you have anything (most likely a Creator) with the same name as your account username that could be conflicting?
- multiuser mode
- and yes, I had a creator with the same name.
Just renamed it from "JollyOrc" to "JollyOrcCreator" and that solved the whole issue apparently.
Ok, that makes sense, it couldn't save because of the naming conflict (which is all to do with federation). The question is, how did it end up with the same handle/username in the first place? That should be impossible.... hmm.
I've tried a few things, and haven't been able to force a naming conflict like you got; can you remember anything about the sequence you set it up with?
Did you set that username first at the first-run admin user setup step, then made a creator later on?
It's been a moment, but I am pretty sure that was the process, yes.
If it was a while ago, I wonder if you perhaps hit a bug whereby the usernames conflicted, but it didn't affect anything until now. Either way, I should make the tour fail more safely.
i still having this bug on version 0.129.2
Hm, OK, if this is more than a one-off then I need to find a way to autofix that validation problem or avoid it while saving the tour state. Thanks!