-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Cause:
- the action could not resolve a leg ID from explicit options or the current item
Check:
- does the incoming item contain
json.legIdorjson.sipPbx.legId? - did a previous node accidentally remove
json.sipPbx? - should you set
Options -> Leg IDexplicitly?
Typical places this happens:
- after using generic transform nodes that overwrite
json - when branching away from the original trigger item
Cause:
- a dial control action or wait action cannot find the dial session ID
Check:
json.dialIdjson.sipPbx.dialId- explicit
Options -> Dial IDsforWait Event - explicit
Options -> Dial IDforBreak
Cause:
- a
Respondaction lost the original response handle and no explicit request ID was provided
Fix:
- keep the original trigger item intact
- or set
Options -> Request ID - or restore the value from
json.sipPbx
Expected if:
timeoutSeconds = 0
Unexpected if:
- the timeout is too low for the real caller behavior
- the wrong leg or dial ID is being watched
This can be expected.
The timeout path is not guaranteed to carry a fully resolved media payload. Build timeout logic around the branch itself and eventType = "timeout", not around mediaId or legId.
Possible reasons:
- the extension is not registered
- the endpoint exists in a different workflow scope
-
Only Free Endpointsis enabled and all matching endpoints are busy - you mistyped the extension number list
What to remember:
- extension dialing searches same-workflow extensions refs
- it does not search unrelated workflows
Check all of the following:
- the caller was actually enqueued
- the queue trigger is active
- the queue trigger has operator extension numbers configured
- matching extension endpoints are registered
- those endpoints are available if you rely on free-only behavior
Also inspect whether the queue is repeatedly reaching Offline because retries are exhausted.
This usually means you used background playback intentionally but never followed it with:
Stop Media- or
Wait Media
Recommended pattern:
- save the returned
mediaId - stop it explicitly when the queue dispatch or bridge event happens
- or let a later
call.waitstop looping oncall_queue_removedif queue owns that caller lifecycle
Check:
- is the file path valid on the n8n host?
- does the n8n process have write permission?
- are you waiting for completion when you expect final file metadata?
- if using HTTP upload, are auth and headers correct?
Possible reasons:
- wrong credential type selected
- upstream requires a different auth method
- your custom headers conflict with provider auth headers
Remember:
- the node resolves auth into a normalized URL and header set before calling the runtime
Cause:
-
Attach Voice Agentreceived more than oneai_memoryinput
Fix:
- connect only one memory input
Cause:
- the connected memory object is not compatible with the native structured memory integration expected by the current implementation
Fix:
- use a LangChain-compatible memory integration that exposes the required message constructors and
chatHistory.addMessages
Check:
- was the tool connected as an
ai_toolinput toAttach Voice Agent? - does the tool expose a valid name and parameter schema?
- did you use
Invoke AI Toolfor the tool node? - does the workflow respond through
Respond To AI Tool?
If activation fails because a trigger already exists:
- you likely reused the same public
refwhere uniqueness is enforced
Best practice:
- keep refs globally unique unless you intentionally rely on advanced flow scoping rules
Current public UI expectation:
- use
UDPfor SIP credentials and extensions transport selection
If you are trying to build a workflow around a transport not exposed in the node UI, treat that as unsupported for end-user documentation and normal production setup.
The published package ships Linux native prebuilds. If your host platform does not match the supported prebuild targets, installation or runtime startup can fail before any workflow logic starts.
Open a GitHub issue when you can clearly provide:
- package version
- host OS and architecture
- whether you use trunk, extensions, queue, or WebSocket mode
- the exact node operation that failed
- whether the failure is configuration-time, activation-time, or during a live call