- Fix update sub-workflow: remove unsupported GraphQL filter arg, fix node reference (Format Pull Error → Format Update Error), fix field case (data.image → data.Image) - Fix batch cancel: connect Route Callback output 20 (batchcancel) to Prepare Batch UI Input (was empty connection array) - Fix text commands: change .item.json to .first().json for paired item breakage after GraphQL chain expansion; convert Send Batch Confirmation from Telegram node to HTTP Request to fix double-serialized reply_markup Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4.5 KiB
status, trigger, created, updated
| status | trigger | created | updated |
|---|---|---|---|
| verifying | Single container update via inline keyboard fails with execution errors on both main workflow and container update sub-workflow | 2026-02-09T00:00:00Z | 2026-02-09T00:30:00Z |
Current Focus
hypothesis: CONFIRMED - Three bugs in n8n-update.json causing update flow failure test: Push fixed workflow and trigger update via inline keyboard expecting: Update should complete without execution errors next_action: User triggers update to verify fix
Symptoms
expected: Tapping "Update" on inline keyboard confirmation should trigger container update via GraphQL API actual: Execution errors on both main workflow and update sub-workflow after confirmation dialog errors: (1) "Unknown argument 'filter' on field 'Docker.containers'" (2) "missing data.docker.containers" (3) Wrong node reference in Return Error reproduction: Tap Update on container submenu, confirm, observe error started: After Phase 16 migration (Docker socket proxy -> Unraid GraphQL API)
Eliminated
-
hypothesis: Credential ID issue (placeholder "unraid-api-key-credential-id") evidence: n8n resolves credentials by name on push; actual n8n has correct ID "6DB4RZZoeF5Raf7V" timestamp: 2026-02-09
-
hypothesis: ContainerId format is wrong (PrefixedID with colon) evidence: The PrefixedID format is correct and used by the mutation; the issue is the query using a nonexistent filter arg timestamp: 2026-02-09
-
hypothesis: Main workflow "Prepare Text Action Input" error is related evidence: Execution 1516 was triggered by text command "Start dup", not an update callback - separate bug timestamp: 2026-02-09
Evidence
-
timestamp: 2026-02-09 checked: n8n execution 1498 (main workflow, callback update flow) found: Flow reaches "Execute Callback Update" which calls update sub-workflow; sub-workflow fails with "missing data.docker.containers" error implication: Error originates in update sub-workflow, propagates back to main workflow
-
timestamp: 2026-02-09 checked: n8n execution 1500 (update sub-workflow) found: "Query Single Container" node sends GraphQL query with
filter: { id: "..." }argument. Unraid API responds HTTP 400: "Unknown argument 'filter' on field 'Docker.containers'" implication: Thefilterargument does not exist in Unraid GraphQL API schema. All working queries usequery { docker { containers { ... } } }without filter -
timestamp: 2026-02-09 checked: Working queries in n8n-actions.json, n8n-status.json found: All working nodes query ALL containers without filter, then filter client-side implication: Unraid GraphQL API only supports listing all containers, no server-side filtering
-
timestamp: 2026-02-09 checked: Update sub-workflow flow routing found: Main workflow passes containerId (resolved by name). Sub-workflow's "Has Container ID?" = true, routes to "Query Single Container" (broken filter). The "no container ID" path through "Query All Containers" works correctly implication: Direct ID path is always taken and always fails
-
timestamp: 2026-02-09 checked: "Return Error" node code found: References
$('Format Pull Error')but node is actually named "Format Update Error" implication: Error path would also fail with "node not found" if reached -
timestamp: 2026-02-09 checked: "Capture Pre-Update State" node found: Reads
data.image(lowercase) from normalizer but normalizer outputsImage(capitalized) implication: currentImage would always be empty string even if normalizer worked
Resolution
root_cause: Three bugs in n8n-update.json:
- PRIMARY: "Query Single Container" uses nonexistent GraphQL
filterargument onDocker.containers. Unraid API does not support server-side filtering - returns HTTP 400. - SECONDARY: "Return Error" node references
$('Format Pull Error')but node is named "Format Update Error" (leftover from pre-migration naming). - MINOR: "Capture Pre-Update State" reads
data.imagebut normalizer outputsdata.Image(case mismatch).
fix: |
- Changed "Query Single Container" jsonBody from filter-based query to same all-containers query used by working nodes
- Rewrote "Normalize Single Container" to fetch all containers, then filter client-side by containerId from trigger data
- Fixed "Return Error" node reference from
$('Format Pull Error')to$('Format Update Error') - Fixed "Capture Pre-Update State" property access from
data.imagetodata.Image
verification: Pushed to n8n (HTTP 200). Awaiting user test of inline keyboard update flow.
files_changed:
- /home/luc/Projects/unraid-docker-manager/n8n-update.json