Error: Unable to dequeue messages from queue

Error: Unable to dequeue messages from queue

Problem

Unable to dequeue messages from queue '<component_GUID>'.
The queue position '<component_GUID>-1768420530707-1' points to a log file that no longer exists.
There is a potential loss of queued messages that's beyond Iguana's control. Please make sure all queued messages are present and accounted for.

Cause

The component failed to dequeue a message from the upstream component because the log file that contained the message no longer exists and queued messages have been unexpectedly lost.

Solutions

Solution 1: If you are on a version lower than 10.1.117

If you are on a version lower than 10.1.117 and encountered this error, please reach out to Interfaceware Support Team at support@interfaceware.com to resolve this issue to minimize disruptions. This is imperative to prevent accidental crashes when attempting to resolve on your own.

To resolve this error timely, you will need to include in your email the following items:

  1. IguanaX version number found under Settings → About.

  2. The full error message.

  3. The component GUIDs of all components in the affected workflow.

    1. Component GUIDs can be obtained by clicking on the component from the Dashboard and copying from the browser URL.

image-20260324-183104.png
  1. A file containing the Component States from the Iguana Service logs.

To obtain the Component States from the Iguana Service logs, follow these steps below:

Navigate to the Logs and change the dropdown to “Iguana Service” which will be located at the top of the dropdown list.
Search the logs using the Filters for “component states” and click “Search”.
Double click the log message containing the most recent Component States entry to open in detailed view. Copy the contents of the log entry in full and save the contents to a file using a text editor application.

Solution 2: If you are on a version equal or higher than 10.1.117

The queue position needs to be updated so it points to a valid log file. Currently it is attempting to dequeue from a log file that no longer exists.

We can correct the queue position by pushing a harmless dummy message from the upstream component to the downstream component that encountered the error, which advances the queue to a valid position.

It is recommended to perform this process during a period of downtime, as you will need to stop all components in the workflow and clear the queues of the affected components.

You can stop components using bulk actions or stop components one by one.
View the upstream component in Translator in Edit mode. Rename the original main() function to another name i.e. main2(). Create a new, empty main() function. Add a queue.push statement in the global scope (outside the main() function). Example Code: -- Push a harmless message downstream queue.push{data = "Hello World"} -- Create an empty main function function main(Data) end -- Rename the original main function function main2(Data) -- original code end
Turn on the upstream component to push the harmless message downstream.
View the logs of the upstream component to verify the dummy message was pushed. If the message was pushed successfully, there will be a new log entry containing the dummy message and a #message tag.
Unlink the upstream component from the downstream component, then relink it. This clears the downstream component's queue.
Revert all changes made earlier. View the source component in Translator in Edit mode. Delete the empty main() function and the queue.push added in global scope. Rename main2() back to main().
You can start components using bulk actions or start components one by one.

Additional Note:

If multiple components have the dequeue error, the solution below must be done for all affected components, in order. Take a look at the following example workflow.

Component A → Component B → Component C → Component D

If in this workflow, components B and C are encountering the dequeue error, you will need to follow steps 1-6 for component B then steps 1-6 for component C before starting all components again in step 7.