Troubleshooting

This section provides steps to diagnose and resolve common journey execution and integration issues within Quickwork.

Common issues and solutions

  • Trigger not firing
    • Ensure the journey is started. Navigate to the journey and click Save & Start to activate it.
    • Verify that the external source system (for example, Typeform, Salesforce, or webhook) is correctly configured to send data to Quickwork.
    • Check the History tab to confirm if any transactions were received.
  • Timeout or execution delay
    • Quickwork journey executions have a 90-second timeout limit.
    • For long-running or compute-heavy operations, use the NodeJS app or break the flow into smaller callable journeys.
    • Check if external systems are responding slowly or timing out.
    • Avoid running Foreach with many sync calls to Callable journeys to avoid journey timeout.
  • 2FA issues
    • Enter the 6-digit code promptly before it refreshes (codes update every 30 seconds).
    • If you cannot access your authenticator app, click Try using a recovery code and enter one of your saved codes.
  • Debugging failed runs
    • Open the History tab and inspect the failed run for detailed input, output, and error messages.
    • Use the Logger app to capture intermediate data between steps for debugging.
    • Use the Monitoring tab for Callable journeys/API endpoints to verify request counts, status codes, and response time.
    • Use Transaction tables if you need to filter the transactions by some properties in steps.
  • Transactions stuck in pending state
    • Verify if there are delays or errors in responses from external APIs.
    • Ensure that your systems are equipped to handle complex calculations and large data volumes.
    • Check the conditions in your decision-making processes. Make sure they are set correctly and not causing unnecessary delays.
  • Out of Memory (OOMKilled) error
    Each transaction in Quickwork is allocated 256 MB of memory by default. This limit may be exceeded when processing large payloads or handling thousands of records.
    • Extract data from your source system in batches rather than trying to retrieve all information at once. This approach reduces the memory load on each transaction.
    • Use Callable journeys to divide the process into smaller tasks. By breaking down large payloads into smaller chunks, you can process data more efficiently and avoid memory overflows.
    • Quickwork can also assist in increasing the memory limit for specific workflows if necessary. However, adopting these best practices ensures smoother and more efficient processing without requiring additional memory resources.
  • Failed transaction with error messages and potential fixes
    1. Error messages: Unauthenticated, Token expired, Token revoked, 401, Failed to refresh token.
      • This type of error usually comes when the connection is no longer valid and requires re-connecting the connection from the Connections tab in the journey for the app where the error came from.
      • If the connection uses API key, check if the API is expired, revoked or if any permissions have been changed
    2. Error messages: Unauthorized, Permission denied, Forbidden, 403.
      • Check if the user has sufficient roles and permissions granted in the system.
      • Contact the admin of the system for permissions or role related issues.
    3. Error messages: ETIMEOUT, Service unavailable, 504.
      • The external API of the system did not respond in time or the external system is under maintenance.
      • To handle such errors a Try-catch block should be used to catch such error messages and handle the journey flow according to the business requirement.
      • You can use a delay of a few minutes with the Scheduler by Quickwork app's action in the catch block and re-try the actions once again after some time.
    4. Error message: Rate limit exceeded, Too many requests, 429.
      • This indicates that the number of requests to the external system is sent more than the allowed limit or allotted quota.
      • This can be solved if there is an option to increase the limit or quota of allowed requests. You can also use the Provisioned Concurrency setting in the journey to match the desired throughput and not exceed the allowed request limits.
    5. Error message: Value required for field X, Missing required field value, Bad request, Max characters reached for field X, Unknown field, 400.
      • These error messages come when the validation of the action input is failed by an external system. Please ensure that all the values are passed for all the mandatory fields and that the values are within the field restrictions.
      • Refresh the fields of the actions by clicking Refresh button to update to the latest fields as present in the external system.
      • If any data pills are used for any values, make sure they are coming correctly from the above steps.
    6. Error message: Cannot read property of undefined or null, invalid character, unexpected character.
      • These errors come where there is a Formula mode used for any action input.
      • Make sure the entered formula or code is tested on your system once.
      • The written code in Formula mode does not use any third-party dependencies and does not use any undeclared or unavailable variables.
      • Make sure you have handled scenarios where you are not calling any method on null or undefined data pill values from the above steps.
      • If the app is NodeJS, make sure that you have turned off the Formula mode for the Code field. The string type datapill values in the Code input field are enclosed in single or double quotes. If you are facing challenges in escaping the values in string literals, please use the Context (Key-Value) pairs in NodeJS action to pass the values of data pills.

📚 Additional resources

Error handling
Best practices