Pipeline runs triggered by my self-hosted spindle don't appear in the repository's pipelines tab on the AppView, despite the spindle successfully executing and completing the workflow.
Logs from an successful run:
{"kind":"control","content":"Pull image from Nixery","time":"2026-06-15T02:29:26.29313972Z","step_id":-1,"step_status":"start"}
{"kind":"data","content":"Pulling image: nixery.tangled.sh/cargo/gcc/bash/git/coreutils/nix","time":"2026-06-15T02:29:26.376153283Z","step_id":-1,"stream":"stdout"}
{"kind":"data","content":"{\"status\":\"Pulling from cargo/gcc/bash/git/coreutils/nix\",\"id\":\"latest\"}","time":"2026-06-15T02:29:27.776175521Z","step_id":-1,"stream":"stdout"}
{"kind":"data","content":"{\"status\":\"Digest: sha256:43a81e4fdc7657034ffb075aff8b67a301cfc739c9066e8ec5d9f77860a90c9e\"}","time":"2026-06-15T02:29:28.036795139Z","step_id":-1,"stream":"stdout"}
{"kind":"data","content":"{\"status\":\"Status: Image is up to date for nixery.tangled.sh/cargo/gcc/bash/git/coreutils/nix:latest\"}","time":"2026-06-15T02:29:28.037111203Z","step_id":-1,"stream":"stdout"}
{"kind":"data","content":"Creating container...","time":"2026-06-15T02:29:28.038875137Z","step_id":-1,"stream":"stdout"}
{"kind":"data","content":"Starting container...","time":"2026-06-15T02:29:28.12676587Z","step_id":-1,"stream":"stdout"}
{"kind":"control","content":"Pull image from Nixery","time":"2026-06-15T02:29:28.404454064Z","step_id":-1,"step_status":"end"}
{"kind":"control","content":"Configure Nix","time":"2026-06-15T02:29:28.404520514Z","step_id":0,"step_status":"start","step_command":"mkdir -p /etc/nix\necho 'extra-experimental-features = nix-command flakes' \u003e\u003e /etc/nix/nix.conf\necho 'build-users-group = ' \u003e\u003e /etc/nix/nix.conf\necho 'sandbox = false' \u003e\u003e /etc/nix/nix.conf\nprintf '#!/bin/sh\\nrm -rf /homeless-shelter\\n' \u003e /etc/nix/post-build-hook.sh\nchmod +x /etc/nix/post-build-hook.sh\necho 'post-build-hook = /etc/nix/post-build-hook.sh' \u003e\u003e /etc/nix/nix.conf"}
{"kind":"control","content":"Configure Nix","time":"2026-06-15T02:29:28.475356588Z","step_id":0,"step_status":"end","step_command":"mkdir -p /etc/nix\necho 'extra-experimental-features = nix-command flakes' \u003e\u003e /etc/nix/nix.conf\necho 'build-users-group = ' \u003e\u003e /etc/nix/nix.conf\necho 'sandbox = false' \u003e\u003e /etc/nix/nix.conf\nprintf '#!/bin/sh\\nrm -rf /homeless-shelter\\n' \u003e /etc/nix/post-build-hook.sh\nchmod +x /etc/nix/post-build-hook.sh\necho 'post-build-hook = /etc/nix/post-build-hook.sh' \u003e\u003e /etc/nix/nix.conf"}
{"kind":"control","content":"Clone repository into workspace","time":"2026-06-15T02:29:28.475400416Z","step_id":1,"step_status":"start","step_command":"git init\ngit remote add origin https://knot1.tijarist.xyz/did:plc:uvqgmvpyxlxb7fpnkhetfac2\ngit fetch --depth=1 origin 8a657110bb5712dc39742dada82e4ac10f241112\ngit checkout FETCH_HEAD"}
{"kind":"data","content":"hint: Using 'master' as the name for the initial branch. This default branch name\nhint: is subject to change. To configure the initial branch name to use in all\nhint: of your new repositories, which will suppress this warning, call:\nhint:\nhint: \tgit config --global init.defaultBranch \u003cname\u003e\nhint:\nhint: Names commonly chosen instead of 'master' are 'main', 'trunk' and\nhint: 'development'. The just-created branch can be renamed via this command:\nhint:\nhint: \tgit branch -m \u003cname\u003e\nhint:\nhint: Disable this message with \"git config set advice.defaultBranchName false\"","time":"2026-06-15T02:29:28.561687973Z","step_id":1,"stream":"stderr"}
{"kind":"data","content":"Initialized empty Git repository in /tangled/workspace/.git/","time":"2026-06-15T02:29:28.562130979Z","step_id":1,"stream":"stdout"}
{"kind":"data","content":"From https://knot1.tijarist.xyz/did:plc:uvqgmvpyxlxb7fpnkhetfac2\n * branch 8a657110bb5712dc39742dada82e4ac10f241112 -\u003e FETCH_HEAD","time":"2026-06-15T02:29:28.69994762Z","step_id":1,"stream":"stderr"}
{"kind":"data","content":"Note: switching to 'FETCH_HEAD'.\n\nYou are in 'detached HEAD' state. You can look around, make experimental\nchanges and commit them, and you can discard any commits you make in this\nstate without impacting any branches by switching back to a branch.\n\nIf you want to create a new branch to retain commits you create, you may\ndo so (now or later) by using -c with the switch command. Example:\n\n git switch -c \u003cnew-branch-name\u003e\n\nOr undo this operation with:\n\n git switch -\n\nTurn off this advice by setting config variable advice.detachedHead to false\n\nHEAD is now at 8a65711 ci: add tangled pipeline workflow","time":"2026-06-15T02:29:28.710306425Z","step_id":1,"stream":"stderr"}
{"kind":"control","content":"Clone repository into workspace","time":"2026-06-15T02:29:28.712502961Z","step_id":1,"step_status":"end","step_command":"git init\ngit remote add origin https://knot1.tijarist.xyz/did:plc:uvqgmvpyxlxb7fpnkhetfac2\ngit fetch --depth=1 origin 8a657110bb5712dc39742dada82e4ac10f241112\ngit checkout FETCH_HEAD"}
{"kind":"control","content":"Build","time":"2026-06-15T02:29:28.712540314Z","step_id":2,"step_status":"start","step_kind":1,"step_command":"cargo build --release"}
{"kind":"data","content":" Compiling spindle-test v0.1.0 (/tangled/workspace)","time":"2026-06-15T02:29:29.060293692Z","step_id":2,"stream":"stderr"}
{"kind":"data","content":" Finished `release` profile [optimized] target(s) in 0.68s","time":"2026-06-15T02:29:29.477809143Z","step_id":2,"stream":"stderr"}
{"kind":"control","content":"Build","time":"2026-06-15T02:29:29.483925086Z","step_id":2,"step_status":"end","step_kind":1,"step_command":"cargo build --release"}
The repo triggering the pipeline: https://tangled.org/tijarist.xyz/spindle-test
The triggered pipeline: https://tangled.org/tijarist.xyz/spindle-test/blob/main/.tangled/workflows/build.yml
Steps #
- Set up new repository.
- Configure self-hosted spindle for pipelines inside repository settings.
- Create workflow and push.
Context #
- My spindle config is publicly available here: https://tangled.org/tijarist.xyz/hetzner-open-social/blob/9c84244344e039c2fd0c1e87d2bd9ba09a5f4a4c/modules/tangled/spindle.nix
- Knot / Spindle version: tangled core 75b3402 (via flake.lock).
you will need to allow websocket connections in your reverse proxy, i can see that neither knot nor spindle have this enabled here: https://tangled.org/tijarist.xyz/hetzner-open-social/blob/9c84244344e039c2fd0c1e87d2bd9ba09a5f4a4c/modules/tangled/nginx.nix . you can see how we set this up for
knot1.tangled.shandspindle.tangled.shhere: