Flow stuck in restart loop on nextcloud-aio 12.5.0

Support intro

Sorry to hear you’re facing problems. :slightly_frowning_face:

The community help forum (help.nextcloud.com) is for home and non-enterprise users. Support is provided by other community members on a best effort / “as available” basis. All of those responding are volunteering their time to help you.

If you’re using Nextcloud in a business/critical setting, paid and SLA-based support services can be accessed via portal.nextcloud.com where Nextcloud engineers can help ensure your business keeps running smoothly.

Getting help

In order to help you as efficiently (and quickly!) as possible, please fill in as much of the below requested information as you can.

Before clicking submit: Please check if your query is already addressed via the following resources:

(Utilizing these existing resources is typically faster. It also helps reduce the load on our generous volunteers while elevating the signal to noise ratio of the forums otherwise arising from the same queries being posted repeatedly).

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can. :heart:

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • Nextcloud-aio: version 12.5.0, Nextcloud Hub 25 Autumn (32.0.4)
  • Operating system and version (e.g., Ubuntu 24.04):
    • Nextcloud Hub 25 Autumn (32.0.4)
  • Web server and version (e.g, Apache 2.4.25):
    • Apache/2.4.66 (Unix)
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • When installing Flow (windmill) from the admin +apps menu
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • AIO
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • no

Summary of the issue you are facing:

When I install Flow (windmill) from nextcloud apps, the installation process says: Error starting install of ExApp. And nc_app_flow is stuck in a restart loop. How to solve this issue?

Steps to replicate it (hint: details matter!):

  1. Install docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt install docker-compose
sudo systemctl start docker
  1. Install nextcloud-aio
$ cat compose.yaml 
services:
  nextcloud-aio-mastercontainer:
    image: ghcr.io/nextcloud-releases/all-in-one:latest
    init: true
    restart: always
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - nextcloud_aio_data:/mnt/ncdata
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 80:80
      - 8080:8080
      - 8443:8443
    environment:
      NEXTCLOUD_DATADIR: /mnt/ncdata

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer
  nextcloud_aio_data:
    name: nextcloud_aio_data
  1. from the AIO admin page install Docker Socket Proxy
[x] Docker Socket Proxy (needed for Nextcloud App API)
  1. webhook_listeners already enabled
  2. Enable AppAPI in the admin settings tools category
  3. Check deploy daemon connection and test deploy worked OK
  4. Installation of Flow (windmill) from the Nextcloud apps
  • Admin
  • + Apps
  • Flow (bottom left)
  • Deploy and Enable

==> was kind of removed, after “health checking” for minutes. “Error starting install of ExApp”

==> nc_app_flow is stuck in a restarting loop

Log entries

nc_app_flow

$ docker logs nc_app_flow

HP_SHARED_KEY is not set. Skipping FRP configuration.
flow is already in /etc/hosts
PostgreSQL binaries found.
Starting PostgreSQL...
pg_ctl: another server might be running; trying to start server anyway
waiting for server to start.... done
server started
Waiting for PostgreSQL to start...
PostgreSQL is up and running.
ALTER ROLE
DATABASE_URL is already set to: postgresql://flow:flow@%2Fvar%2Frun%2Fpostgresql/flow?sslmode=disable
NUM_WORKERS is already set to: 24
Starting windmill in background...
Starting main command as a Python script: /ex_app/lib/main.py
Running in standalone mode
We STRONGLY recommend using at most 1 worker per container, use at your own risks
Connecting to database...
PostgreSQL version: PostgreSQL 15.15 (Debian 15.15-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit (windmill require PG >= 14)
OTEL settings loaded: tracing (false), logs (false), metrics (false), endpoint (None), headers defined: (false)
Database connected
2026-02-08T14:10:28.078822Z  WARN windmill-common/src/server.rs:81: SMTP not configured
[DEBUG]: USERS_STORAGE_PATH= /nc_app_flow_data/windmill_users_config.json
[DEBUG]: PROJECT_ROOT_FOLDER= /
[DEBUG]: STATIC_FRONTEND_PRESENT= True
2026-02-08T14:10:28.570276Z ERROR windmill-api/src/tracing_init.rs:39: response latency=0 status=401
2026-02-08T14:10:28.635773Z ERROR windmill-common/src/error.rs:267: Internal: Not implemented in Windmill's Open Source repository @users_oss.rs:53:9 error=InternalErrLoc { message: "Not implemented in Windmill's Open Source repository", location: "users_oss.rs:53:9" }
2026-02-08T14:10:28.635810Z ERROR windmill-api/src/tracing_init.rs:39: response latency=2 status=500
2026-02-08T14:10:28.635817Z ERROR windmill-api/src/tracing_init.rs:50: response failure latency=2
[initialize_windmill]: initialize_windmill: can not change default credentials password: Internal: Not implemented in Windmill's Open Source repository @users_oss.rs:53:9
Traceback (most recent call last):
  File "/ex_app/lib/main.py", line 741, in <module>
    initialize_windmill()
  File "/ex_app/lib/main.py", line 316, in initialize_windmill
    raise RuntimeError(f"initialize_windmill: can not change default credentials password, {r.text}")
RuntimeError: initialize_windmill: can not change default credentials password, Internal: Not implemented in Windmill's Open Source repository @users_oss.rs:53:9

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

{"reqId":"71a9GdGdVAxZ4CQ4opi0","level":2,"time":"2026-02-08T12:45:42+00:00","remoteAddr":"","user":"--","app":"app_api","method":"","url":"--","scriptName":"console.php","message":"Failed heartbeat on http://flow:23001 for 600 times. Most recent status=0, error: cURL error 6: Could not resolve host: flow (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://flow:23001/heartbeat","userAgent":"--","version":"32.0.4.1","occ_command":["console.php","app_api:app:register"],"data":{"app":"app_api"}}
{"reqId":"71a9GdGdVAxZ4CQ4opi0","level":3,"time":"2026-02-08T12:45:43+00:00","remoteAddr":"","user":"--","app":"app_api","method":"","url":"--","scriptName":"console.php","message":"ExApp flow heartbeat check failed. Make sure that Nextcloud instance and ExApp can reach it other.","userAgent":"--","version":"32.0.4.1","occ_command":["console.php","app_api:app:register"],"data":{"app":"app_api"}}
{"reqId":"UYZxECiHAHcJaV6FZQWS","level":3,"time":"2026-02-08T12:45:43+00:00","remoteAddr":"78.51.70.7","user":"admin","app":"app_api","method":"POST","url":"/apps/app_api/apps/enable/flow/docker_aio","scriptName":"/index.php","message":"Error executing occ command. Return code: 1, stdout: , stderr: ","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:147.0) Gecko/20100101 Firefox/147.0","version":"32.0.4.1","data":{"app":"app_api"}}

Web server / Reverse Proxy

The output of your Apache/nginx/system log in /var/log/____:

PASTE HERE

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):


{
    "system": {
        "one-click-instance": true,
        "one-click-instance.user-limit": 100,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "check_data_directory_permissions": false,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "overwritehost": "nextcloud.mydomain.com",
        "overwriteprotocol": "https",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "nextcloud.mydomain.com"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "32.0.4.1",
        "overwrite.cli.url": "https:\/\/nextcloud.mydomain.com\/",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "updatechecker": false,
        "loglevel": 2,
        "log_type": "file",
        "logfile": "\/var\/www\/html\/data\/nextcloud.log",
        "log_rotate_size": 10485760,
        "log.condition": {
            "apps": [
                "admin_audit"
            ]
        },
        "preview_max_x": 2048,
        "preview_max_y": 2048,
        "jpeg_quality": 60,
        "enabledPreviewProviders": {
            "1": "OC\\Preview\\Image",
            "2": "OC\\Preview\\MarkDown",
            "3": "OC\\Preview\\MP3",
            "4": "OC\\Preview\\TXT",
            "5": "OC\\Preview\\OpenDocument",
            "6": "OC\\Preview\\Movie",
            "7": "OC\\Preview\\Krita",
            "0": "OC\\Preview\\Imaginary",
            "23": "OC\\Preview\\ImaginaryPDF"
        },
        "enable_previews": true,
        "upgrade.disable-web": true,
        "mail_smtpmode": "smtp",
        "trashbin_retention_obligation": "auto, 30",
        "versions_retention_obligation": "auto, 30",
        "activity_expire_days": 30,
        "simpleSignUpLink.shown": false,
        "share_folder": "\/Shared",
        "one-click-instance.link": "https:\/\/nextcloud.com\/all-in-one\/",
        "upgrade.cli-upgrade-link": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/2726",
        "updatedirectory": "\/nc-updater",
        "maintenance_window_start": 100,
        "allow_local_remote_servers": true,
        "davstorage.request_timeout": 3600,
        "documentation_url.server_logs": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/5425",
        "htaccess.RewriteBase": "\/",
        "dbpersistent": false,
        "auth.bruteforce.protection.enabled": true,
        "ratelimit.protection.enabled": true,
        "files_external_allow_create_new_local": false,
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_url": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_key": "***REMOVED SENSITIVE VALUE***",
        "DOMAIN": "nextcloud.mydomain.com"
    }
}

Apps

The output of occ app:list (if possible).

Enabled:
  - activity: 5.0.0-dev.0
  - admin_audit: 1.22.0
  - app_api: 32.0.0
  - bruteforcesettings: 5.0.0-dev.0
  - calendar: 6.1.6
  - circles: 32.0.0
  - cloud_federation_api: 1.16.0
  - comments: 1.22.0
  - contacts: 8.3.1
  - contactsinteraction: 1.13.1
  - dashboard: 7.12.0
  - dav: 1.34.2
  - deck: 1.16.3
  - federatedfilesharing: 1.22.0
  - federation: 1.22.0
  - files: 2.4.0
  - files_downloadlimit: 5.0.0-dev.0
  - files_pdfviewer: 5.0.0-dev.0
  - files_reminders: 1.5.0
  - files_sharing: 1.24.1
  - files_trashbin: 1.22.0
  - files_versions: 1.25.0
  - firstrunwizard: 5.0.0-dev.0
  - logreader: 5.0.0-dev.0
  - lookup_server_connector: 1.20.0
  - nextcloud-aio: 0.8.0
  - nextcloud_announcements: 4.0.0-dev.0
  - notes: 4.13.0
  - notifications: 5.0.0-dev.0
  - notify_push: 1.3.0
  - oauth2: 1.20.0
  - password_policy: 4.0.0-dev.0
  - photos: 5.0.0-dev.1
  - privacy: 4.0.0-dev.0
  - profile: 1.1.0
  - provisioning_api: 1.22.0
  - recommendations: 5.0.0-dev.0
  - related_resources: 3.0.0-dev.0
  - richdocuments: 9.0.2
  - serverinfo: 4.0.0-dev.0
  - settings: 1.15.1
  - sharebymail: 1.22.0
  - spreed: 22.0.8
  - support: 4.0.0-dev.0
  - survey_client: 4.0.0-dev.0
  - systemtags: 1.22.0
  - tasks: 0.17.1
  - text: 6.0.1
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - twofactor_totp: 14.0.0
  - updatenotification: 1.22.0
  - user_status: 1.12.0
  - viewer: 5.0.0-dev.0
  - weather_status: 1.12.0
  - webhook_listeners: 1.3.0
  - whiteboard: 1.5.5
  - workflowengine: 2.14.0
Disabled:
  - encryption: 2.20.0
  - files_external: 1.24.0
  - suspicious_login: 10.0.0-dev.0
  - twofactor_nextcloud_notification: 6.0.0-dev.0
  - user_ldap: 1.23.0

Tips for increasing the likelihood of a response

  • Use the preformatted text formatting option in the editor for all log entries and configuration output.
  • If screenshots are useful, feel free to include them.
    • If possible, also include key error output in text form so it can be searched for.
  • Try to edit log output only minimally (if at all) so that it can be ran through analyzers / formatters by those trying to help you.

Not sure but I see a thread on GitHub that looks relevant: 1.3.0 - Cannot install ExApp · Issue #130 · nextcloud/flow · GitHub

Thank you loads. I did have a look at it. Looks very much like my issue. Hopefully I will try to get around to install flow 1.2 and see if it fixes my problem. I will update this thread.

Hey, thanks again.
I kind of got flow 1.2.0 running on my Nextcloud-AIO 12.5.0, but without real usable results. I now resorted to run an instance of n8n next to the nextcloud and do the automation there.