Skip to main content
← Back to list
01Issue
BugOpenSwamp CLI
AssigneesNone

Relationships

#585 workflow resume fails to register all extension model types (local and pulled) — "Unknown model type"

Opened by jdh313 · 6/7/2026

Summary

swamp workflow resume does not load extension model types at all. Any step after a manual_approval gate whose model is backed by an extension type — pulled (.swamp/pulled-extensions/) or local (extensions/models/) — fails with Unknown model type: <type>, while the identical step succeeds in the workflow run process minutes earlier in the same repo.

Environment

  • swamp 20260606.235053.0-sha.d4ff2b04 (also reproduced on 20260605.223149; swamp update --check confirms this is the latest build)
  • macOS (darwin), repo with pulled extensions from two collectives plus local extensions under extensions/models/

Steps to reproduce

  1. In a repo with a model backed by a pulled extension type, create a 3-job workflow: before-gate (any harmless method on that model) → gate (manual_approval) → after-gate (identical step to before-gate).
  2. swamp workflow run <name> — before-gate succeeds, run suspends at the gate.
  3. swamp workflow approve <name> <gate-step>
  4. swamp workflow resume <name>

Expected

after-gate executes and the workflow succeeds, as documented in "Understanding workflow suspension" (resume re-executes pending steps, including extension loading).

Actual

Resume log (pulled extension, @keeb/ssh/host):

INF extension·auto-resolve Extension type "[@keeb](/u/keeb)/ssh/host" not found locally, searching registry...
INF model·method·run·freehold-ssh·exec Found model "freehold-ssh" ("[@keeb](/u/keeb)/ssh/host")
ERR extension·auto-resolve Extension "[@keeb](/u/keeb)/ssh" is already installed at "/path/to/repo/.swamp/pulled-extensions/@keeb/ssh" but failed to load.
ERR extension·auto-resolve Local edits may be preventing it from registering — inspect the source and fix errors.
ERR extension·auto-resolve To reset to the registry version and discard local changes, run: swamp extension pull "[@keeb](/u/keeb)/ssh" --force
ERR workflow·run·...·after-gate·echo-after Step failed: "Unknown model type: [@keeb](/u/keeb)/ssh/host"
ERR workflow·run·... Workflow "failed"

The identical step succeeded ~30 seconds earlier in the workflow run process.

Scope — three-way control matrix

Extension type Source run process resume process Resume error
@keeb/ssh/host pulled resolves fails "already installed ... but failed to load"
@swamp/kubernetes/node pulled resolves fails "already installed ... but failed to load"
@jdh313/streamdeck-devices local resolves fails "collective not trusted, so it was not auto-resolved"

The local-extension control is diagnostic: a type in extensions/models/ should never enter the extension·auto-resolve registry path, yet in the resume process it does — and is then rejected on trust. This indicates the resume process starts with an empty extension type registry: it skips the startup extension-loading phase that workflow run performs, then falls back to registry auto-resolve for every type, which fails differently per source. The "Local edits may be preventing it from registering" hint is a misdiagnosis — a clean swamp extension pull --force changes nothing.

Ruled out

  • swamp extension trust add keeb — already trusted; changes the error text, not the outcome
  • Local edits to the pulled extension — clean re-pull (--force) has no effect
  • swamp doctor extensions — reports everything Indexed/healthy
  • Affects official @swamp/* extensions too, so not a third-party packaging issue

Affected component / expected fix

The workflow resume entry path (the process spawned by swamp workflow resume). The fix would involve running the same extension discovery/registration phase at resume startup that workflow run performs (local extensions/models/ + .swamp/pulled-extensions/) before executing pending steps. Any step type resolution after a suspend currently depends on that missing phase.

Repro attachments

Three minimal repro workflows (before-gate → manual_approval → after-gate, identical read-only steps either side of the gate) are available on request — one per row of the matrix above.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

6/7/2026, 3:43:13 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.