#3096
A nested structural swamp still waits on its run's lock when the lock holder is not a same-host ancestor (cross-host worker, --server into a non-ancestor serve)
h14h ago
#3111
A nested structural swamp that outlives the run that started it keeps skipping that run's lock while the holder writes
15h ago
#3110
Show signal waits to remote clients and the dashboard
15h ago
#3109
Settle expired signal waits from swamp serve
15h ago
#3108
Resume signalled workflow runs automatically under swamp serve
15h ago
#3093
Deliver workflow signals through a write-once outcome record instead of writing the run record
h15h ago
#2982
Forward held-lock identity over --server so a loopback nested swamp does not wait on its caller's lock
h17h ago
#2983
A nested structural swamp on a same-host remote worker waits on its own step's lock held by swamp serve
h18h ago
#2981
Fail fast when nested structural commands under parallel runs wait on each other's locks
h18h ago
#3079
Docs: remove followUpActions from the MethodResult reference in the extension model manual
h18h ago
#3092
signal_test: already-settled test fails by chance when a random UUID spells the sender name
18h ago
#3068
Add a wait_for_signal workflow step that pauses a run for a JSON message
h18h ago
#3094
Deliver workflow signals through swamp serve
h13h ago
#3059
run doctor through serve interrupts a live run of another serve instance when no heartbeats are recorded
h19h ago
#3081
Flaky test: WalSink replayed segments are delivered before events written after replay leaves one WAL segment
h20h ago
#3078
Remove followUpActions: no model or extension can produce them
h20h ago
#2946
Workflow schedule watcher and workflow edit symlink lookup ignore the managed config workflows dir
h20h ago
#3084
main is red: repository_dirty_coverage_test fails for UnifiedData.collectGarbage(orphaned deferred write)
20h ago
#3082
isProcessGone always reports alive on Linux under the test task permissions, failing 9 tests on main
h20h ago
#3083
Flaky test: WalSink replayed segments are delivered before events written after replay
18h ago
#2893
serve: relative tls cert-file/key-file and --config resolve against the working directory, not the repository
h21h ago
#2975
findBySpec/findByTag lose a workflow step's output after a version is deleted, pruned or rolled back
s21h ago
#3074
serve HA: worker enrollment on a replica that lacks the enrollment token's definition may create a second definition (unverified)
21h ago
#3073
serve HA: pull a token's definition on an auth miss so a peer accepts a new token at once
21h ago
#2917
Run tracker keeps some interrupted workflow rows forever: retention waits for markSettled, which several paths never call
22h ago
#3051
run doctor reads every run record on each run to rebuild the run indexes
hs22h ago
#3037
Serve audit: two sinks with the same name share one emitter cursor, so the second never receives events
1d ago
#3039
Serve audit: a durable sink write that times out is retried while the first call is still pending, so the store can hold duplicate sequences
s1d ago
#3043
Flaky test: ModelResolver data accessors for a renamed model return the earlier id's record from findBySpec
s1d ago
#2985
data query --limit returns fewer live records than exist and reports limited: false when stale catalog rows fall inside the limit
s1d ago
#2987
data get: help example passes --run latest, which is not a recognised run id
s1d ago
#2905
workflow reject leaves sibling gates waiting_approval and dependents pending in a failed, retryable run
h1d ago
#3045
Show expired approval gates as expired, with a Cancel action in the dashboard
1d ago
#3041
digitalocean codegen leaves an orphaned security_secret.ts model file after its endpoint left the spec
1d ago
#2920
workflow cancel cannot cancel a suspended run whose workflow file was deleted, and cancel --all silently skips it
h1d ago
#2898
A job alone in its level starts after the abort, and its unstarted step is recorded as a real failure instead of settledByAbort
h1d ago
#2919
workflow approve racing workflow cancel loses the cancel: the run returns to suspended after cancel reported cancelled
h1d ago
#2972
data query: does not follow data rename forwarding that data get follows
h1d ago
#2994
Unit tests share fixed /tmp catalog paths, so concurrent runs corrupt them and fail every later run
h1d ago
#2968
data query: renamed data items are not found by their old name
h4d ago
#2960
data query: model lookup by id and orphan recovery parity with data get
h4d ago
#2899
workflow approve on a run that is not suspended prints a fatal error with a stack trace
h4d ago
#2957
data query: no way to target a workflow's latest run
h4d ago
#2959
data query: binary content lacks contentEncoding/base64 parity with data get
h4d ago
#2958
data query: no fallback from spec name to data instance name
h4d ago
#2967
data query: no definitionHash or garbageCollection fields in query results
h4d ago
#2955
A nested structural swamp spawned by swamp serve skips every lock serve holds, including other runs' locks
h4d ago
#2962
data query: confirm catalog parity with data get for custom datastores
h4d ago
#2961
data query: single-result --json mode for scripts migrating from data get
h4d ago
#2973
Docs: document data query --single and fix the stale --limit default in reference/data.md
1d ago
#2948
data get --workflow silently returns an arbitrary step's data when several steps share a data name
h4d ago
#2942
swamp doctor workflows misses nested and .yml extension workflows that the loader reads
h4d ago
#2928
auth whoami says the stored API key is no longer valid when auth.json only holds an env-key identity cache
s4d ago
#2921
Docs: swamp skill says cancelling a parent run cancels its nested child runs; the child is left suspended
s4d ago
#2941
Namespace advice in the slow-lock warning is wrong for a single repo on a local datastore
h4d ago
#2930
Method-run records left running by a dead owner are never reaped
s5d ago
#2909
Flaky: usecase_sync_characterization_data_test 'data gc (serve)' asserts markDirty order that varies under parallel load
s5d ago
#2926
Worker dispatch rebuilds the definition with Definition.create, so a legacy-named model cannot run on a worker
h5d ago
#2918
A cancelled workflow exits before its steps stop, leaving their method-run records at running
h5d ago
#2927
Nested swamp structural command in a shell step times out on its parent's per-model lock (SWAMP_LOCK_HOLDER_PID is stripped)
5d ago
#2924
Auth gate blocks nested swamp in workflow shell steps when the credential is in SWAMP_API_KEY
h5d ago
#2925
swamp workflow create crashes with an [FTL] ZodError stack trace on an invalid (uppercase) workflow name
5d ago
#2923
swamp model create crashes with an [FTL] ZodError stack trace on an invalid (uppercase) model name
h5d ago
#2914
model cancel SIGTERMs a running swamp serve process when the method run belongs to a serve-run workflow
h5d ago
#2929
Follow-up action retries ignore the run's abort signal and can outlast a cancel
h21h ago
#2915
model cancel --all on a running workflow leaves its method-run records at running, or records them failed instead of cancelled
5d ago
#2910
model cancel SIGKILLs the owner 2 s after SIGTERM, before the step executor's own 3 s kill grace, so the run never records its own cancellation
h5d ago
#2895
workflow cancel and supersede of a suspended run leave its jobs running in the cancelled record
h5d ago
#2922
Tell timeouts apart from cancels in method-run records, and review the hidden 30 s fallback timer for step-called model methods
5d ago
#2896
A force-exited workflow run stays running with a dead pid: resume, recover and run doctor --fix cannot clear it
h5d ago
#2736
A nested workflow that suspends on manual approval forwards its suspended event into the parent run's stream
h5d ago
#2897
workflow cancel SIGKILLs the run 2 s after SIGTERM, cutting off always/completed cleanup jobs mid-step
h5d ago
#2845
Warn when datastore setup keeps managedConfig but the new datastore has no config tier
h5d ago
#2903
Docs: run doctor --fix and workflow recover settle runs left running by a force-exited process
5d ago
#2812
serve: a relative grants-dir resolves against the working directory, not the repository
h5d ago
#2597
workflow resume cleanup mode can run an always-gated teardown before a suspended job's approved work
h5d ago
#2894
Docs: serve-flags.md should state that relative grants-dir and grants-file resolve against the repository
5d ago
#2838
managedConfig: extension writes update the shared lockfile from a stale cache and overwrite peers' entries
h5d ago
#2868
managedConfig: model/vault create and other bulk-push commands re-upload a stale extension lockfile and erase peers' entries
h5d ago
#2867
Cancel, reject and supersede of a parent run should settle its suspended nested child runs
6d ago
#2837
datastore setup extension overwrites the shared config tier with the repo-local copy and drops managedConfig from .swamp.yaml
h6d ago
#2844
datastore setup can overwrite an existing remote config tier when it moves an in-repo tier into an extension datastore
6d ago
#2829
serve daemon enable writes a unit that crash-loops when serve args are invalid (e.g. missing --admins)
h6d ago
#2833
Concurrent embedded deno extraction races: stale temp-file cleanup deletes another process's in-flight .deno.tmp file (chmod ENOENT)
h6d ago
#2836
Docs: manual approval gates inside nested workflows (swamp-club#2736)
5d ago
#2802
Telemetry bridge drops a parent step's invocation when a nested workflow step has the same job and step names
h6d ago
#2824
serve daemon: unit sets SWAMP_HOME, which relocates the config dir — token/oauth daemons can't find auth.json and crash-loop
h6d ago
#2825
Workflow step that times out on the model lock leaves its output and run-tracker row stuck at 'running'
h6d ago
#2827
Docs: serve daemon enable pins SWAMP_CONFIG_DIR; document the SWAMP_CONFIG_DIR override
6d ago
#2724
An extension upgrade that hits a type collision is rolled back to no version: roll back to the prior version with a commit/rollback install handle
h6d ago
#2735
Telemetry bridge attributes a parent run's later method invocations to its nested child run
h6d ago
#2814
sensitive_data_delivery_test fails where /bin/sh is bash: the final ps is exec'd and reports its own argv
h6d ago
#2815
build-attestation rejects every run: evaluated workflows now carry sensitiveFormat, which the provenance check treats as an uncommitted field
h6d ago
#2762
DuplicateTypeError names the incoming extension as the existing claimant and reports a false ghost row when it sorts first
h6d ago
#2723
Install extensions by stage and swap, with a journal and crash recovery
h7d ago
#2593
workflow resume ignores SWAMP_MAX_CONCURRENT_STEPS for job-level concurrency
h7d ago
#2651
Tidy up tests and helpers from the serve suspended-run cancel
h7d ago
#2709
Concurrent extension installs and removals can interleave in one checkout: add a pulled-extensions lock and LockfileRepository.refresh()
h7d ago
#2722
deno run audit prints No description available for every advisory
h7d ago
#2492
Add a literal() CEL function so one string can mix swamp expressions with another service template syntax
h7d ago
#2707
Extension archives have no size cap: cap the compressed and decompressed size on pull and push
h7d ago
#2616
withGeneratorSpan does not forward return() to the wrapped generator, so its finally blocks are skipped on early exit
h7d ago
#2713
forEach over a direct step with a shared modelName runs every iteration with one iteration's globalArgs on first creation
h7d ago
#2708
Split installExtension into an unlocked prepare and a repo-changing apply
h7d ago
#2650
workflow cancel --server shows raw JSON errors and drops --reason
h7d ago
#2702
Two pulled extensions providing one type + a rebuilt catalog brick every command (I-Repo-1 at startup reconcile, even rm/--repair)
h7d ago
#2490
Extension catalog keeps stale rows after install migration and rm; model type describe crashes with ENOENT
h7d ago
#2698
Flaky test: CollectiveRefreshService fallback getAccessToken test counts calls after a fixed 200ms sleep
sh7d ago
#2701
Docs: worker-fleet guides start swamp serve without --admins and mint tokens with a removed command
7d ago
#2493
model validate log output misaligns multi-entry Expression paths errors
h7d ago
#2447
Retry refusals print unquoted forEach template names in --from hints, which bash rejects
h7d ago
#2580
workflow run log output: a forEach step with a templated name labels its iterations with the raw expression, e.g. deploy-${{ self.env }}[0]
h7d ago
#2694
Docs: update the model validate Expression paths example in cel-expressions.md
7d ago
#2652
Docker image runs swamp as PID 1 without an init, so orphaned step processes are never reaped
h7d ago
#2617
swamp.cli.bootstrap, configure_extension_loaders and teardown spans each start their own trace
h7d ago
#2691
Docs: run swamp under an init in the worker-fleet guides
h7d ago
#2646
Extension restore leaves a parent installed and its dependency permanently missing when the dependency install fails
h7d ago
#2426
serve: vault edit over --server opens an editor on the server host and ignores the managedConfig vaults dir
s7d ago
#2514
A suspended run started by swamp serve cannot be cancelled
h8d ago
#2634
command/shell: aborting a step kills only sh, leaving the command's child processes orphaned
h8d ago
#2639
Extension restore drops the lockfile entry's channel and leaks the parent's expectedChecksum into dependency installs
h8d ago
#2429
managedConfig: serve extension handlers disagree on the pulled-extensions root, and lockfile files[] are repo-relative
h8d ago
#2589
swamp.model.method spans are parented to the workflow run span instead of their swamp.workflow.step span
h8d ago
#2314
Platform certificate load failure surfaces as an uncaught error on network commands
h8d ago
#2417
serve: server-login can't be traced: no request spans, and gcs-datastore push is unparented with an 81s gap in child spans
h8d ago
#2420
workflow resume keeps the original run's process identity (run record pid and instanceId)
h8d ago
#2612
managedConfig: store pulled extension archives in the config tier and converge each checkout to the shared lockfile
h7d ago
#2547
workflow run --json: guarded-skip lines land on stdout or stderr depending on timing
h8d ago
#2360
workflow run and model method run reject --ca-cert, but their TLS error tells users to pass it
h8d ago
#2549
After a cancel or --timeout, jobs that share a level are abandoned mid-flight: their steps stay running and their own cleanup steps never run
h8d ago
#2359
SWAMP_CA_CERT overrides the --ca-cert flag, contrary to the documented flag-wins precedence
h8d ago
#2594
workflow resume --timeout records cancel_reason 'The signal has been aborted' instead of a timeout reason
h8d ago
#2556
InProcessExecutor mutates the process-wide TRACEPARENT, so concurrent in-process executions clobber and leak trace context
h8d ago
#2550
workflow resume has no job-level cleanup mode: after --timeout or a cancel, always/completed cleanup jobs start with the aborted signal and fail at once
h8d ago
#2548
workflow cancel on a live local run overwrites the owning process's final run record with a stale snapshot
h8d ago
#2592
s3-datastore: SWAMP_S3_REQUEST_TIMEOUT_MS does not appear to apply to ListObjectsV2 during pull
8d ago
#2591
s3-datastore: S3Lock.acquire overshoots maxWaitMs by up to a full backoff interval
8d ago
#2590
s3-datastore: a model-scoped pull still lists, walks and indexes the whole namespace
8d ago
#2543
After a cancel or --timeout, a never-started dependency stays pending, so failed- and completed-gated cleanup steps are skipped
h8d ago
#2579
Direct-type forEach fan-out waits about 1s on the auto-definition lock when its definition is first created (missed by swamp-club#2126)
h8d ago
#2483
managedConfig: fix startup config-base resolution and extension list (prerequisites for swamp-club#2429)
h8d ago
#2538
workflow run log output: a skipped plain step's line names only the job, not the step
h11d ago
#2551
Docs: manual examples show the old workflow skip line without the step name
8d ago
#2537
A forEach step's dependsOn condition is never evaluated, so its iterations run when the condition is false
h11d ago
#2531
managedConfig: the datastore extension is only found through a lockfile, so the config base is guessed (part 3c of swamp-club#2483)
h11d ago
#2510
model output data/logs/search can't find outputs of user extension model types locally
h11d ago
#2413
serve: ServerTokenGcService is never started, so expired server tokens accumulate forever
s11d ago
#2502
workflow resume --input key=value does not coerce the value to the declared input type (workflow run does)
h11d ago
#2496
Direct-execution workflow steps validate evaluated globalArgs, so the CEL concatenation workaround for colliding template names fails
s11d ago
#2498
workflow resume of a suspended run crashes mid-run when the workflow was edited during the approval window
h12d ago
#2494
Install rollback recursively deletes pre-existing skill dirs that pull merged into
s12d ago
#2491
Foreign CEL like GitHub Actions ${{ github.sha }} in a global argument fails validate and throws when the method reads it
sh12d ago
#2497
model validate blames foreign {{ ... }} text for an unclosed ${{ expression
h12d ago
#2433
workflow resume --from: a step moved or renamed since the run failed is skipped and the run reported succeeded, or crashes with 'Step run not found'
h12d ago
#2495
managedConfig: extension lockfile writes lose updates, and auto-resolved installs never reach the shared lockfile
h6d ago
#2432
workflow resume prints unexpected errors as a fatal stack trace, and --json returns them unclassified with the stack
h12d ago
#2415
serve: remove the remaining no-path markDirty() calls that force full-cache datastore pushes
h12d ago
#2430
workflow resume: Ctrl-C leaves the run 'running' with nothing driving it, and it can no longer be resumed
h13d ago
#2431
workflow recover crashes on every invocation: 'Path must be a string'
h13d ago
#2409
workflow resume: retry the failed steps of a failed run without --from
h13d ago
#2428
Remote indicator prints the full --server URL, including a ?token= query credential, to stderr
s13d ago
#2425
serve: vault annotate --label over --server is rejected (CLI sends labels as an object, protocol expects string[])
h13d ago
#2443
workflow recover: a changed definition leaves the interrupted run with no way to recover or resume
h7d ago
#2408
serve: the device-token poll that returns the token takes 88s, making server-login to ops.swamp-club.com take ~90s
h13d ago
#2421
datastore sync: repositories mark paths dirty before writing, so a concurrent ungated push can drop the write
13d ago
#2419
gcs-datastore: push spends almost all its time in an untraced gap between index read and first upload (81s in the #2408 login, up to 836s)
13d ago
#2418
serve: after lazy hydration, scoped poller pulls never take the fast path, and the login mint waits behind them on the sync gate
13d ago
#2416
datastore extensions: full pushes re-hash every pulled file on every run because index mtimes never match pulled copies
13d ago
#2386
steps.<name>.outputs is never populated for model_method steps
s14d ago
#2378
auth server-login hangs after device-flow authorization is approved in browser; never completes or times out
h14d ago
#2379
Let a method inside serve start a workflow run: context.runWorkflow
14d ago
#2365
s3-datastore: every scoped push on a fresh datastore warns 'Index merge failed, fast path stays unarmed' (missing .datastore-index.json) and the fast path never arms
14d ago
#2363
Flaky integration tests: cel_data_access and webhook_payload_inputs race on SWAMP_TEST_2172_AUTHORED env var
s14d ago
#2361
serve rejects doctor.datastores, cluster.instances and serve.config requests: no zod schema
14d ago
#2349
s3/gcs datastore: no safe recovery when _meta.json v2 lists a shard missing from the bucket
14d ago
#2333
gcs-datastore: a failed lock read is reported as "unlocked" — #2298 in the GCS backend
15d ago
#2309
Scheduled runs that suspend on an approval gate are logged as failures
s15d ago
#2308
swamp run history reports completed for failed workflow runs
h15d ago
#2329
s3/gcs-datastore: clean up data left behind by deletes that silently no-opped before the swamp-club#2249 fix
15d ago
#2310
Every webhook lifecycle line is logged twice by swamp serve
s15d ago
#2315
gcs-datastore: verify generation-precondition support at setup and in doctor; an emulator or proxy that ignores ifGenerationMatch makes locking silently unsafe
h15d ago
#2322
agent-constraints: planning-conventions CI fan-out checklist points at jobs that no longer live in ci.yml
15d ago
#2312
Property test for deferred bindings fails intermittently on a __proto__ key
h15d ago
#2247
serve: poller pull can race a handler's delete-then-push and resurrect the deleted item
h19d ago
#2246
s3-datastore: pullChanged ignores subdirs while advertising configRefresh, so serve pollers re-download the whole datastore
h19d ago
#2250
verify-build fails on the codegen-verify guard: 'No such key: stdout'
s5d ago
#2249
s3-datastore: data 'latest' pointer objects are never indexed, so deleting a data item leaves an orphaned latest object in S3
h15d ago
#2121
Server-side workflow resume fails on direct-type model steps
s19d ago
#2122
Data queries read unrelated artifact bodies before metadata filters reject them
h20d ago
#2188
data.latest() cannot see ephemeral data once the light expression context is used (breaks verify-reviews and verify-skills guards)
h20d ago
#2123
Expression evaluation scans all model definitions without model or file references
h20d ago
#2124
Repeated targeted lookups reparse unrelated model and workflow definitions
h21d ago
#2125
Workflow history get/logs enumerate all run contents for a full run UUID
h21d ago
#2126
Brief local model-lock contention incurs a roughly one-second initial retry delay
h21d ago
← Back to list9/22/2026, 11:39:58 PM
01Issue
BugShippedSwamp CLIPublic
Assigneeshammz
Relationships
#2378 auth server-login hangs after device-flow authorization is approved in browser; never completes or times out
Opened by hammz · 9/22/2026· Shipped 9/22/2026
Description
swamp auth server-login against a swamp serve instance hangs after the user has finished authorizing in the browser. The CLI prints the verification code and opens the browser. The user finishes the device authorization at swamp-club.com and gets sent back, but the CLI never picks up the token. It doesn't finish, doesn't show an error, and doesn't time out. The process has to be killed manually.
Steps to reproduce
- Run:
$ swamp auth server-login --server https://ops.swamp-club.com Discovering server auth mode... Your verification code: XXXXXXXX Open: https://swamp-club.com/device?user_code=XXXXXXXX Opening browser... - In the browser that opens, enter or confirm the code and finish authorization. The browser flow succeeds and returns.
- Go back to the terminal.
Nothing is printed after Opening browser..., even though authorization succeeded. The command stays in this state indefinitely.
Expected behavior
- After the browser authorization is approved, the CLI's next token poll should get the token, save the credential, and exit successfully.
- Separately, the CLI should never wait forever. It should stop polling and exit with an error when the device code expires (
expires_in), or after some other overall timeout. - If the token endpoint returns an error, a non-OAuth response, or the connection drops, the CLI should report it and exit instead of silently waiting.
- While it waits, the CLI should print something like "Waiting for authorization…" so the user knows it is polling.
Actual behavior
It hangs with no output after a successful browser authorization. There is no timeout and no error.
Possibly related
- #1899 / #1938:
swamp servepanics when OAuth device-flow authorization succeeds (the 200 branch). If the server's token endpoint still fails on the success path, the CLI poll could be left waiting on a response that never comes. Even so, the CLI should time out instead of hanging.
Environment
- swamp version: 20260922.213037.0-sha.eae73d0f
- OS: Linux (CachyOS, kernel 7.2.6)
- Server: https://ops.swamp-club.com (OAuth device flow via swamp-club.com)
02Bog Flow
Shipped
Click a lifecycle step above to view its details.
03Sludge Pulse