> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runalloy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve all error logs for a workflow

> Use this endpoint to get the error logs for a specific workflow.
It returns the error message, and the date stamp when the error was thrown, the block that caused the error, and the `workflowId` . Commonly used to debug workflows when they error and identify historical errors; this endpoint may be used in conjunction with the route error messages feature.

If there are no errors for the specified workflow, this endpoint will return an empty array.



## OpenAPI

````yaml get /workflows/{workflowId}/errors
openapi: 3.0.1
info:
  title: Embedded 2025-09
  version: '5.0'
servers:
  - url: https://production.runalloy.com
security: []
paths:
  /workflows/{workflowId}/errors:
    get:
      summary: Retrieve all error logs for a workflow
      description: >-
        Use this endpoint to get the error logs for a specific workflow.

        It returns the error message, and the date stamp when the error was
        thrown, the block that caused the error, and the `workflowId` . Commonly
        used to debug workflows when they error and identify historical errors;
        this endpoint may be used in conjunction with the route error messages
        feature.


        If there are no errors for the specified workflow, this endpoint will
        return an empty array.
      operationId: get-workflow-errors
      parameters:
        - name: Authorization
          in: header
          required: true
          schema:
            type: string
            default: bearer YOUR_API_KEY
        - $ref: '#/components/parameters/xApiVersion'
        - name: workflowId
          in: path
          description: The Id of the workflow you want to find errors for
          schema:
            type: string
          required: true
        - name: userId
          in: query
          description: The Id of the user
          schema:
            type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    data:
                      - workflowId: 632531cf3beb6c98611abd09
                        connector: shopify
                        errorOccurredAt: '2022-09-17T22:12:34.567Z'
                        message: The customer failed to create due to an invalid Id
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      security: []
      x-code-samples:
        - lang: cURL
          source: >
            curl -X GET
            "https://production.runalloy.com/workflows/{workflowId}/errors?userId={{userId}}"
            \
              -H "Authorization: bearer YOUR_API_KEY" \
              -H "x-api-version: 2025-09"
        - lang: Python
          source: >
            import requests


            url =
            "https://production.runalloy.com/workflows/{workflowId}/errors"

            params = {"userId": "{{userId}}"}

            headers = {
                "Authorization": "bearer YOUR_API_KEY",
                "x-api-version": "2025-09"
            }


            response = requests.get(url, params=params, headers=headers)

            print(response.json())
        - lang: JavaScript
          source: >
            const userId = "{{userId}}";

            const workflowId = "{workflowId}";

            const url =
            `https://production.runalloy.com/workflows/${workflowId}/errors?userId=${userId}`;


            fetch(url, {
              method: "GET",
              headers: {
                "Authorization": "bearer YOUR_API_KEY",
                "x-api-version": "2025-09"
              }
            })
              .then(response => response.json())
              .then(data => console.log(data))
              .catch(error => console.error("Error:", error));
        - lang: PHP
          source: >
            <?php

            $userId = "{{userId}}";

            $workflowId = "{workflowId}";

            $url =
            "https://production.runalloy.com/workflows/{$workflowId}/errors?userId="
            . urlencode($userId);


            $ch = curl_init($url);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            curl_setopt($ch, CURLOPT_HTTPHEADER, [
                "Authorization: bearer YOUR_API_KEY",
                "x-api-version: 2025-09"
            ]);


            $response = curl_exec($ch);

            curl_close($ch);

            $data = json_decode($response, true);

            print_r($data);

            ?>
        - lang: Go
          source: |
            package main

            import (
                "encoding/json"
                "fmt"
                "io"
                "net/http"
                "net/url"
            )

            func main() {
                userId := "{{userId}}"
                workflowId := "{workflowId}"
                baseURL := "https://production.runalloy.com/workflows/" + workflowId + "/errors"
                params := url.Values{}
                params.Add("userId", userId)
                fullURL := baseURL + "?" + params.Encode()

                req, _ := http.NewRequest("GET", fullURL, nil)
                req.Header.Set("Authorization", "bearer YOUR_API_KEY")
                req.Header.Set("x-api-version", "2025-09")

                client := &http.Client{}
                resp, _ := client.Do(req)
                defer resp.Body.Close()

                body, _ := io.ReadAll(resp.Body)
                var data map[string]interface{}
                json.Unmarshal(body, &data)
                fmt.Println(data)
            }
        - lang: Java
          source: |
            import java.net.HttpURLConnection;
            import java.net.URL;
            import java.io.BufferedReader;
            import java.io.InputStreamReader;
            import com.google.gson.Gson;
            import java.util.Map;

            public class Example {
                public static void main(String[] args) throws Exception {
                    String userId = "{{userId}}";
                    String workflowId = "{workflowId}";
                    String baseUrl = "https://production.runalloy.com/workflows/" + workflowId + "/errors";
                    String urlString = baseUrl + "?userId=" + java.net.URLEncoder.encode(userId, "UTF-8");
                    
                    URL url = new URL(urlString);
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setRequestProperty("Authorization", "bearer YOUR_API_KEY");
                    conn.setRequestProperty("x-api-version", "2025-09");
                    
                    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    String inputLine;
                    StringBuilder response = new StringBuilder();
                    while ((inputLine = in.readLine()) != null) {
                        response.append(inputLine);
                    }
                    in.close();
                    
                    Gson gson = new Gson();
                    Map<String, Object> data = gson.fromJson(response.toString(), Map.class);
                    System.out.println(data);
                }
            }
        - lang: Ruby
          source: >
            require 'net/http'

            require 'json'

            require 'uri'


            userId = "{{userId}}"

            workflowId = "{workflowId}"

            base_url =
            "https://production.runalloy.com/workflows/#{workflowId}/errors"

            uri = URI(base_url)

            params = { userId: userId }

            uri.query = URI.encode_www_form(params)


            http = Net::HTTP.new(uri.host, uri.port)

            http.use_ssl = true


            request = Net::HTTP::Get.new(uri)

            request['Authorization'] = 'bearer YOUR_API_KEY'

            request['x-api-version'] = '2025-09'


            response = http.request(request)

            data = JSON.parse(response.body)

            puts data
components:
  parameters:
    xApiVersion:
      name: x-api-version
      in: header
      required: true
      description: The version of the API to use. The current API version is **2025-09**.
      schema:
        type: string
        default: 2025-09

````