Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Empty Input Handling

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Analyze AI Overview",
  "nodes": [
    {
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "gl"
            },
            {
              "name": "q"
            },
            {
              "name": "location"
            },
            {
              "name": "hl"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1.1,
      "position": [
        -624,
        320
      ],
      "id": "1fadcfb7-077e-43f2-810c-27be1c0f6575",
      "name": "When Executed by Another Workflow"
    },
    {
      "parameters": {
        "url": "https://serpapi.com/search",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "serpApi",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "gl",
              "value": "={{ $json.gl }}"
            },
            {
              "name": "q",
              "value": "={{ $json.q }}"
            },
            {
              "name": "location",
              "value": "={{ $json.location }}"
            },
            {
              "name": "hl",
              "value": "={{ $json.hl }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -400,
        320
      ],
      "id": "a66d8866-4e88-4216-8de2-d78bda030c61",
      "name": "GET SERP Results",
      "retryOnFail": true,
      "waitBetweenTries": 5000,
      "credentials": {
        "serpApi": {
          "id": "ip84lDL75JMRWLKs",
          "name": "SerpAPI Account"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "d8cbb599-3ec7-446b-be55-9f48e21b4d11",
              "name": "=serpapi_link",
              "value": "={{ $json.ai_overview.serpapi_link }}...

Output:
This workflow may fail when receiving empty or null input data.

**Common Error Messages**:
- "Cannot read property 'x' of undefined"
- "No items to process"
- "Input data is empty"

**Root Cause**: The workflow doesn't handle cases where:
- Trigger receives no data
- Previous node returns empty array
- API returns null or empty response

**Solutions**:

1. **Add IF Node for Empty Check**:
```json
{
  "parameters": {
    "conditions": {
      "number": [{
        "value1": "={{ $json.length }}",
        "operation": "larger",
        "value2": 0
      }]
    }
  },
  "name": "Check Not Empty",
  "type": "n8n-nodes-base.if"
}
```

2. **Use Default Values**:
```javascript
{{ $json.field ?? "default_value" }}
{{ $json.items || [] }}
```

3. **Add Set Node with Defaults**:
- Create a Set node that provides default values
- Place it early in the workflow

4. **Implement No Match Output**:
- Many nodes have "No Match" outputs
- Use these to handle empty cases gracefully

**Best Practice**: Always validate input data and provide sensible defaults for optional fields.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Rate Limiting Risk

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "AI Overview Optimizer",
  "nodes": [
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        0
      ],
      "id": "5bd86f24-dc44-422b-af64-9d48f2e75b97",
      "name": "When chat message received",
      "webhookId": "0ee028e9-419a-413a-a3f5-43ad95498ffa"
    },
    {
      "parameters": {
        "contextWindowLength": 10
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        192,
        240
      ],
      "id": "8224aa60-4aaf-4157-9367-4b9bfd7bc5d4",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1",
          "mode": "list",
          "cachedResultName": "gpt-4.1"
        },
        "options": {
          "temperature": 0
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        32,
        240
      ],
      "id": "a3c53901-3ffd-4bf9-849a-e525d8c6cb3c",
      "name": "GPT-4.1",
      "credentials": {
        "openAiApi": {
          "id": "RAj3VxCHt0rIwBTk",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "description": "Call this tool to get the AI Overview from Google.",
        "workflowId": {
          "__rl": true,
          "value": "4ViOjawp2E5PbJsu",
          "mode": "list",
          "cachedResultName": "Analyze AI Overview"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "gl": "={{ $fromAI('country') }}",
            "q": "={{ $fromAI('query') }}",
            "location": "={{ $fromAI('location') }}",
            "hl": "={{ $fromAI('host_language') }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "gl",
              "displayName": "gl",...

Output:
This workflow may encounter rate limiting issues when processing large batches of data.

**Common Rate Limit Errors**:
- HTTP 429 Too Many Requests
- HTTP 503 Service Unavailable
- API-specific rate limit messages

**Root Cause**: The workflow makes too many API requests in a short time period without delays.

**Solutions**:

1. **Add Wait Nodes**: Insert a Wait node between API calls
```json
{
  "parameters": {"amount": 1, "unit": "seconds"},
  "name": "Rate Limit Delay",
  "type": "n8n-nodes-base.wait"
}
```

2. **Enable Retry on Fail**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 5000
```

3. **Use Batch Processing**: Split items into smaller batches with delays

4. **Implement Exponential Backoff**: Increase wait times with each retry

**Best Practice**: Always check API documentation for rate limits and implement appropriate throttling.

Add rate limiting protection with Wait nodes and retry logic.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Missing Credentials

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Analyze AI Overview",
  "nodes": [
    {
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "gl"
            },
            {
              "name": "q"
            },
            {
              "name": "location"
            },
            {
              "name": "hl"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1.1,
      "position": [
        -624,
        320
      ],
      "id": "1fadcfb7-077e-43f2-810c-27be1c0f6575",
      "name": "When Executed by Another Workflow"
    },
    {
      "parameters": {
        "url": "https://serpapi.com/search",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "serpApi",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "gl",
              "value": "={{ $json.gl }}"
            },
            {
              "name": "q",
              "value": "={{ $json.q }}"
            },
            {
              "name": "location",
              "value": "={{ $json.location }}"
            },
            {
              "name": "hl",
              "value": "={{ $json.hl }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -400,
        320
      ],
      "id": "a66d8866-4e88-4216-8de2-d78bda030c61",
      "name": "GET SERP Results",
      "retryOnFail": true,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "d8cbb599-3ec7-446b-be55-9f48e21b4d11",
              "name": "=serpapi_link",
              "value": "={{ $json.ai_overview.serpapi_link }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set...

Output:
The node 'GET SERP Results' (type: n8n-nodes-base.httpRequest) requires credentials but the 'credentials' configuration is missing.

**Root Cause**: The credentials object was not defined for this node.

**Solution**: Add the credentials configuration back to the node:
```json
"credentials": {
  "serpApi": {
    "id": "ip84lDL75JMRWLKs",
    "name": "SerpAPI Account"
  }
}
```

**Best Practice**: Always verify credentials are properly configured before deploying workflows. Use n8n's credential management system to store sensitive data securely.

Add credentials configuration to the 'GET SERP Results' node.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Syntax Error

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name" "Tool - Serper Crawl URL",
  "nodes": [
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "7320f474-4ba6-47b7-9ce7-82529cbb12ff",
              "name": "title",
              "value": "={{ $json.metadata.title }}",
              "type": "string"
            },
            {
              "id": "a047ca1d-04e0-493b-9d88-eddc4ec4478c",
              "name": "description",
              "value": "={{ $json.metadata.description }}",
              "type": "string"
            },
            {
              "id": "607f18e4-364c-4594-8821-3800b28d3c9b",
              "name": "markdown",
              "value": "={{ $json.markdown }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        288,
        0
      ],
      "id": "635191a6-85dc-439d-8616-ceabb5294a71",
      "name": "Get Metadata"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://scrape.serper.dev",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $json.url }}"
            },
            {
              "name": "includeMarkdown",
              "value": "true"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        64,
        0
      ],
      "id": "b53e65c6-0b22-4b89-b718-32143058205e",
      "name": "Serper",
      "credentials": {
        "httpHeaderAuth":...

Output: The JSON is missing a colon between a key and its value. JSON requires colons to separate keys from values.

Add the missing colon after the property name.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Disconnected Node

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Product - Google Search Console API Examples",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -1000,
        200
      ],
      "id": "5d1adc86-fe51-412e-8aea-cbaf4e9cf708",
      "name": "When clicking \u2018Test workflow\u2019"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://searchconsole.googleapis.com/v1/urlInspection/index:inspect",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleOAuth2Api",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"inspectionUrl\": \"https://your-domain.com/slug/\",\n  \"siteUrl\": \"https://your-domain.com/\"\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -400,
        340
      ],
      "id": "561fd96f-17af-45d5-90ac-a8f14e833d35",
      "name": "Inspect URL",
      "credentials": {
        "googleOAuth2Api": {
          "id": "R0UFaLH10cOpcIL4",
          "name": "Google account"
        }
      }
    },
    {
      "parameters": {
        "content": "## Inspect URLs",
        "height": 240,
        "width": 260
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -460,
        260
      ],
      "id": "48d24e88-5869-4d91-b3a4-97ecad871d4c",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://searchconsole.googleapis.com/webmasters/v3/sites/sc-domain:your-domain.com/searchAnalytics/query",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleOAuth2Api",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"startDate\": \"2025-02-26\",\n  \"endDate\": \"2025-03-26\",\n  \"dimensions\": [\"device\"],\n  \"rowLimit\": 5000\n}",
        "options": {}
     ...

Output:
The workflow has a broken data flow. The node 'Get Keyword Analysis by Pages' is not connected to any subsequent nodes.

**Root Cause**: The connections object is missing the output connections for 'Get Keyword Analysis by Pages'.

**Impact**: Data from 'Get Keyword Analysis by Pages' will not flow to any downstream nodes, effectively stopping the workflow at this point.

**Solution**:
1. Open the workflow in the n8n editor
2. Draw a connection from 'Get Keyword Analysis by Pages' to the next node in the flow
3. Verify the connection appears in the connections object

**Programmatic Fix**: Add the connection back to the workflow JSON:
```json
"connections": {
  "Get Keyword Analysis by Pages": {
    "main": [[{"node": "NextNode", "type": "main", "index": 0}]]
  }
}
```

Reconnect 'Get Keyword Analysis by Pages' to the workflow.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Syntax Error

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "keyword_rank_tracker_google_sheets",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        260,
        820
      ],
      "id": "8acb9df9-dae5-41ec-b899-0cfb7c3853ea",
      "name": "When clicking \u2018Test workflow\u2019"
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1AJRIe-IROQGRtqlBqeiyVP5ayjSlfOMC_nFDGwwLULU",
          "mode": "list",
          "cachedResultName": "tracked_keywords",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1AJRIe-IROQGRtqlBqeiyVP5ayjSlfOMC_nFDGwwLULU/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "={{ $json.domain }}",
          "mode": "name"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1340,
        280
      ],
      "id": "86f7ea65-9942-4886-9516-21553ac7a460",
      "name": "Get Tracked Keywords"
    },
    {
      "parameters": {
        "jsCode": "return [{\n  json: {\n    keywordString: $input.all().map(item => `'${item.json.keywords}'`).join(', ')\n  }\n}];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1580,
        280
      ],
      "id": "3ca647b4-2613-4b31-b1da-9724911380ca",
      "name": "Code"
    },
    {
      "parameters": {
        "projectId": {
          "__rl": true,
          "value": "automations-451008",
          "mode": "list",
          "cachedResultName": "automations",
          "cachedResultUrl": "https://console.cloud.google.com/bigquery?project=automations-451008"
        },
        "sqlQuery": "WITH daily_metrics AS (\n  SELECT \n    data_date as date,\n    query as keyword,\n    url,\n    device,\n    SUM(clicks) as clicks,\n    SUM(impressions) as impressions,\n    ROUND(AVG(sum_position / impressions), 1) as position,\n    ROUND...

Output: The JSON is invalid because it is missing a closing brace '}' at the end of the file. Add the missing '}' to close the workflow object.

Add a closing brace '}' at the end of the JSON.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Disconnected Node

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Mailing List Analysis",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -60,
        0
      ],
      "id": "37c270cd-3e5d-4ef6-8763-29d71cc8131c",
      "name": "When clicking \u2018Test workflow\u2019"
    },
    {
      "parameters": {
        "operation": "getAll",
        "returnAll": true,
        "filters": {}
      },
      "type": "n8n-nodes-base.mailerLite",
      "typeVersion": 2,
      "position": [
        160,
        0
      ],
      "id": "92f3c50f-1189-4d9f-a40b-09aed968c940",
      "name": "Get All Subscribers",
      "credentials": {
        "mailerLiteApi": {
          "id": "",
          "name": "MailerLite account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "bdcb77d5-0ca8-4fde-a9f2-c2ec41b7bf2a",
              "leftValue": "={{ $json.status }}",
              "rightValue": "active",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.2,
      "position": [
        380,
        0
      ],
      "id": "be6e055a-570e-4b45-b460-147a235f7f51",
      "name": "Filter Active Subscribers"
    },
    {
      "parameters": {
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "email"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        600,
        0
      ],
      "id": "f7ff85f8-6a5d-4429-aeff-e13683783ae0",
 ...

Output:
The workflow has a broken data flow. The node 'Get Crawl Status' is not connected to any subsequent nodes.

**Root Cause**: The connections object is missing the output connections for 'Get Crawl Status'.

**Impact**: Data from 'Get Crawl Status' will not flow to any downstream nodes, effectively stopping the workflow at this point.

**Solution**:
1. Open the workflow in the n8n editor
2. Draw a connection from 'Get Crawl Status' to the next node in the flow
3. Verify the connection appears in the connections object

**Programmatic Fix**: Add the connection back to the workflow JSON:
```json
"connections": {
  "Get Crawl Status": {
    "main": [[{"node": "NextNode", "type": "main", "index": 0}]]
  }
}
```

Reconnect 'Get Crawl Status' to the workflow.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Empty Input Handling

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "SEO Data Analyst",
  "nodes": [
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.1,
      "position": [
        80,
        0
      ],
      "id": "e68f379c-160b-40e1-99ca-26eb326961a8",
      "name": "When chat message received",
      "webhookId": "78186b53-b072-4a0f-aaed-a585fe9e1b45"
    },
    {
      "parameters": {
        "contextWindowLength": 10
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        480,
        220
      ],
      "id": "01365ff6-8b71-4e2b-8f41-1b4e11bdf3bc",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1-mini",
          "mode": "list",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {
          "temperature": 0
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        320,
        220
      ],
      "id": "f117fbdb-6cc7-40e8-a9cb-a15815449599",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "id": "RAj3VxCHt0rIwBTk",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "projectId": {
          "__rl": true,
          "value": "automations-451008",
          "mode": "list",
          "cachedResultName": "automations",
          "cachedResultUrl": ""
        },
        "sqlQuery": "{{ $fromAI('sql_statement') }}",
        "options": {
          "returnAsNumbers": true
        }
      },
      "type": "n8n-nodes-base.googleBigQueryTool",
      "typeVersion": 2.1,
      "position": [
        660,
        220
      ],
      "id": "6d8fb936-0f44-4896-a00d-6beb80007152",
      "name": "Execute BigQuery Statements",
      "credentials": {
        "googleBigQueryOAuth2Api": {
          "id": "9x33JaSI9N1JQ0NB",
          ...

Output:
This workflow may fail when receiving empty or null input data.

**Common Error Messages**:
- "Cannot read property 'x' of undefined"
- "No items to process"
- "Input data is empty"

**Root Cause**: The workflow doesn't handle cases where:
- Trigger receives no data
- Previous node returns empty array
- API returns null or empty response

**Solutions**:

1. **Add IF Node for Empty Check**:
```json
{
  "parameters": {
    "conditions": {
      "number": [{
        "value1": "={{ $json.length }}",
        "operation": "larger",
        "value2": 0
      }]
    }
  },
  "name": "Check Not Empty",
  "type": "n8n-nodes-base.if"
}
```

2. **Use Default Values**:
```javascript
{{ $json.field ?? "default_value" }}
{{ $json.items || [] }}
```

3. **Add Set Node with Defaults**:
- Create a Set node that provides default values
- Place it early in the workflow

4. **Implement No Match Output**:
- Many nodes have "No Match" outputs
- Use these to handle empty cases gracefully

**Best Practice**: Always validate input data and provide sensible defaults for optional fields.

Add validation for empty or null input data.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Timeout Configuration

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Tool - Serper Crawl URL",
  "nodes": [
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "7320f474-4ba6-47b7-9ce7-82529cbb12ff",
              "name": "title",
              "value": "={{ $json.metadata.title }}",
              "type": "string"
            },
            {
              "id": "a047ca1d-04e0-493b-9d88-eddc4ec4478c",
              "name": "description",
              "value": "={{ $json.metadata.description }}",
              "type": "string"
            },
            {
              "id": "607f18e4-364c-4594-8821-3800b28d3c9b",
              "name": "markdown",
              "value": "={{ $json.markdown }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        280,
        0
      ],
      "id": "635191a6-85dc-439d-8616-ceabb5294a71",
      "name": "Get Metadata"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://scrape.serper.dev",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $json.query }}"
            },
            {
              "name": "includeMarkdown",
              "value": "true"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        60,
        0
      ],
      "id": "b53e65c6-0b22-4b89-b718-32143058205e",
      "name": "Serper",
      "credentials": {
        "httpHeaderAut...

Output:
This workflow may experience timeout issues with long-running API requests.

**Symptoms**:
- Execution hangs indefinitely
- Connection timeout errors
- ETIMEDOUT or ESOCKETTIMEDOUT errors

**Root Cause**: No timeout configured for HTTP requests, or external services are slow.

**Solutions**:

1. **Set Appropriate Timeouts**:
```json
"options": {
  "timeout": 30000  // 30 seconds
}
```

2. **Add Error Handling**:
- Use Error Trigger node to catch timeout errors
- Implement fallback logic for failed requests

3. **Use Async Patterns**:
- For long operations, use webhook callbacks
- Implement polling patterns instead of waiting

4. **Configure Node Settings**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 2000,
"continueOnFail": true
```

**Best Practice**: Set reasonable timeouts (10-30 seconds) and always have error handling for external API calls.

Configure appropriate timeouts and error handling for HTTP requests.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Empty Input Handling

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Tool - Website Agent",
  "nodes": [
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $json.query }}",
        "options": {
          "systemMessage": "=### System Prompt for n8n AI Agent: Website Analyzer\n\nYou are an AI Agent designed to analyze web pages.  \nWhen the user says something similiar to, \"analyze the following page\" and provides a URL, follow these steps:\n\n1. **Scrape the web page at the provided URL using the available Tool.**\n2. **Extract and return the following information:**\n   - **Title:** The main title of the page.\n   - **Description:** The meta description or a brief summary if no meta description is available.\n   - **Summary:** A concise summary of the main content of the page.\n   - **N-gram Analysis:**  \n     - **Guidelines for N-gram Analysis:**\n       - Only analyze the main textual content of the page (ignore navigation, ads, and boilerplate).\n       - Remove all common stop words (such as \"the\", \"and\", \"is\", etc.) from the analysis.\n       - Normalize text by converting to lowercase and removing punctuation.\n       - For each n-gram type, list the top 10 most frequent items.\n       - Present results as lists, ordered by frequency (most frequent first).\n       - For bigrams and trigrams, do not include n-grams that contain only stop words.\n       - If the page has very little text, return as many n-grams as possible and note the limitation.\n\n     - **Unigram:** List of the most frequent single words (excluding stop words).\n     - **Bigram:** List of the most frequent two-word combinations (excluding those with only stop words).\n     - **Trigram:** List of the most frequent three-word combinations (excluding those with only stop words).\n\n**Output your results in a clear, structured format.**  \nIf any information is missing or cannot be found, state this explicitly.\n\n---\n\n#### Example Output\n\n**Title:** [Page Title]  \n**Description:** [Meta Description or bri...

Output:
This workflow may fail when receiving empty or null input data.

**Common Error Messages**:
- "Cannot read property 'x' of undefined"
- "No items to process"
- "Input data is empty"

**Root Cause**: The workflow doesn't handle cases where:
- Trigger receives no data
- Previous node returns empty array
- API returns null or empty response

**Solutions**:

1. **Add IF Node for Empty Check**:
```json
{
  "parameters": {
    "conditions": {
      "number": [{
        "value1": "={{ $json.length }}",
        "operation": "larger",
        "value2": 0
      }]
    }
  },
  "name": "Check Not Empty",
  "type": "n8n-nodes-base.if"
}
```

2. **Use Default Values**:
```javascript
{{ $json.field ?? "default_value" }}
{{ $json.items || [] }}
```

3. **Add Set Node with Defaults**:
- Create a Set node that provides default values
- Place it early in the workflow

4. **Implement No Match Output**:
- Many nodes have "No Match" outputs
- Use these to handle empty cases gracefully

**Best Practice**: Always validate input data and provide sensible defaults for optional fields.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Empty Input Handling

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Product - SERP Analysis (SerpAPI + Crawl4AI)",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Keyword Research Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Focus Keyword",
              "requiredField": true
            },
            {
              "fieldLabel": "Country",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "de"
                  },
                  {
                    "option": "us"
                  },
                  {}
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        -880,
        940
      ],
      "id": "ab9130ad-2ebe-457b-a442-277e406dfd0b",
      "name": "On form submission",
      "webhookId": "9180df6f-cf6d-4d11-941e-db5659923b24"
    },
    {
      "parameters": {
        "url": "https://serpapi.com/search",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "serpApi",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ $json['Focus Keyword'] }}"
            },
            {
              "name": "gl",
              "value": "={{ $json.Country }}"
            },
            {
              "name": "device",
              "value": "DESKTOP"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -660,
        1040
      ],
      "id": "d14ba2d7-7120-4ad5-9f2a-0e6b1b5f5998",
      "name": "get_desktop_serp_results",
      "credentials": {
        "serpApi": {
          "id": "ip84lDL75JMRWLKs",
          "name": "SerpAPI Account"
        }
      }
    },
    {
      "paramet...

Output:
This workflow may fail when receiving empty or null input data.

**Common Error Messages**:
- "Cannot read property 'x' of undefined"
- "No items to process"
- "Input data is empty"

**Root Cause**: The workflow doesn't handle cases where:
- Trigger receives no data
- Previous node returns empty array
- API returns null or empty response

**Solutions**:

1. **Add IF Node for Empty Check**:
```json
{
  "parameters": {
    "conditions": {
      "number": [{
        "value1": "={{ $json.length }}",
        "operation": "larger",
        "value2": 0
      }]
    }
  },
  "name": "Check Not Empty",
  "type": "n8n-nodes-base.if"
}
```

2. **Use Default Values**:
```javascript
{{ $json.field ?? "default_value" }}
{{ $json.items || [] }}
```

3. **Add Set Node with Defaults**:
- Create a Set node that provides default values
- Place it early in the workflow

4. **Implement No Match Output**:
- Many nodes have "No Match" outputs
- Use these to handle empty cases gracefully

**Best Practice**: Always validate input data and provide sensible defaults for optional fields.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Empty Input Handling

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Product - SERP Analysis (Serper & Crawl4AI)",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Keyword Research Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Focus Keyword",
              "requiredField": true
            },
            {
              "fieldLabel": "Country",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "de"
                  },
                  {
                    "option": "us"
                  },
                  {}
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        -1340,
        1080
      ],
      "id": "d841d3e0-650d-49e7-abba-d5f4186d2312",
      "name": "On form submission",
      "webhookId": "d361eaea-6612-4e11-8f2b-45bdaf5326d6"
    },
    {
      "parameters": {
        "url": "https://google.serper.dev/search",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ $json['Focus Keyword']}}"
            },
            {
              "name": "gl",
              "value": "={{ $json.Country }}"
            },
            {
              "name": "device",
              "value": "mobile"
            },
            {
              "name": "exclude",
              "value": "[\"video\", \"image\", \"news\", \"places\"]"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-ba...

Output:
This workflow may fail when receiving empty or null input data.

**Common Error Messages**:
- "Cannot read property 'x' of undefined"
- "No items to process"
- "Input data is empty"

**Root Cause**: The workflow doesn't handle cases where:
- Trigger receives no data
- Previous node returns empty array
- API returns null or empty response

**Solutions**:

1. **Add IF Node for Empty Check**:
```json
{
  "parameters": {
    "conditions": {
      "number": [{
        "value1": "={{ $json.length }}",
        "operation": "larger",
        "value2": 0
      }]
    }
  },
  "name": "Check Not Empty",
  "type": "n8n-nodes-base.if"
}
```

2. **Use Default Values**:
```javascript
{{ $json.field ?? "default_value" }}
{{ $json.items || [] }}
```

3. **Add Set Node with Defaults**:
- Create a Set node that provides default values
- Place it early in the workflow

4. **Implement No Match Output**:
- Many nodes have "No Match" outputs
- Use these to handle empty cases gracefully

**Best Practice**: Always validate input data and provide sensible defaults for optional fields.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Disconnected Node

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Product - SERP Analysis (Serper + Firecrawl)",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Keyword Research Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Focus Keyword",
              "requiredField": true
            },
            {
              "fieldLabel": "Country",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "de"
                  },
                  {
                    "option": "us"
                  },
                  {}
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        -1180,
        800
      ],
      "id": "5ecb2019-83f7-44bd-9db9-31e23d8d14a1",
      "name": "On form submission",
      "webhookId": "d361eaea-6612-4e11-8f2b-45bdaf5326d6"
    },
    {
      "parameters": {
        "url": "https://google.serper.dev/search",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ $json['Focus Keyword']}}"
            },
            {
              "name": "gl",
              "value": "={{ $json.Country }}"
            },
            {
              "name": "device",
              "value": "mobile"
            },
            {
              "name": "exclude",
              "value": "[\"video\", \"image\", \"news\", \"places\"]"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-ba...

Output:
The workflow has a broken data flow. The node 'get_desktop_serp_results' is not connected to any subsequent nodes.

**Root Cause**: The connections object is missing the output connections for 'get_desktop_serp_results'.

**Impact**: Data from 'get_desktop_serp_results' will not flow to any downstream nodes, effectively stopping the workflow at this point.

**Solution**:
1. Open the workflow in the n8n editor
2. Draw a connection from 'get_desktop_serp_results' to the next node in the flow
3. Verify the connection appears in the connections object

**Programmatic Fix**: Add the connection back to the workflow JSON:
```json
"connections": {
  "get_desktop_serp_results": {
    "main": [[{"node": "NextNode", "type": "main", "index": 0}]]
  }
}
```

Reconnect 'get_desktop_serp_results' to the workflow.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Disconnected Node

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "SERP Analysis Template",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Keyword Research Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Focus Keyword",
              "requiredField": true
            },
            {
              "fieldLabel": "Country",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "de"
                  },
                  {
                    "option": "us"
                  },
                  {}
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        -880,
        940
      ],
      "id": "b93168f8-109d-4014-9ec8-661086b9c4ad",
      "name": "On form submission",
      "webhookId": "92522c0f-d6a1-4d0d-aff7-eb5db34ee8e0"
    },
    {
      "parameters": {
        "url": "https://serpapi.com/search",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "serpApi",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ $json['Focus Keyword'] }}"
            },
            {
              "name": "gl",
              "value": "={{ $json.Country }}"
            },
            {
              "name": "device",
              "value": "DESKTOP"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -660,
        1040
      ],
      "id": "67331a54-782c-4e11-a3c8-5441d65ded74",
      "name": "get_desktop_serp_results"
    },
    {
      "parameters": {
        "url": "https://serpapi.com/search",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "serpApi",
        "...

Output:
The workflow has a broken data flow. The node 'get_status' is not connected to any subsequent nodes.

**Root Cause**: The connections object is missing the output connections for 'get_status'.

**Impact**: Data from 'get_status' will not flow to any downstream nodes, effectively stopping the workflow at this point.

**Solution**:
1. Open the workflow in the n8n editor
2. Draw a connection from 'get_status' to the next node in the flow
3. Verify the connection appears in the connections object

**Programmatic Fix**: Add the connection back to the workflow JSON:
```json
"connections": {
  "get_status": {
    "main": [[{"node": "NextNode", "type": "main", "index": 0}]]
  }
}
```


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Data Type Mismatch

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Template - SERP Analysis (Serper)",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Keyword Research Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Focus Keyword",
              "requiredField": true
            },
            {
              "fieldLabel": "Country",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "de"
                  },
                  {
                    "option": "us"
                  }
                ]
              }
            },
            {
              "fieldLabel": "hl",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "de"
                  },
                  {
                    "option": "en"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        -1340,
        1080
      ],
      "id": "349ba094-8f87-4bcb-83f1-d286e7b96f76",
      "name": "On form submission",
      "webhookId": "688891c0-8e2b-49f6-beb1-ad881f0412cd"
    },
    {
      "parameters": {
        "url": "https://google.serper.dev/search",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ $json['Focus Keyword']}}"
            },
            {
              "name": "gl",
              "value": "={{ $json.Country }}"
            },
            {
              "name": "device",
              "value": "mobile"
            },
            {
              "name": "exclude",
              "value": "[\"video\", \"image\", \"news\", \"places\...

Output:
The node 'get_related_searches_mobile' has a data type mismatch in its parameters.

**Issue**: A field expected a number but received a string value.

**Common Causes**:
1. Expression returns string instead of number
2. JSON parsing preserves string types for numeric values
3. Upstream node outputs different data types than expected

**Solutions**:

1. **Type Conversion in Expression**:
```javascript
// Convert string to number
{ parseInt($json.stringValue) }
{ parseFloat($json.decimalString) }
{ Number($json.value) }
```

2. **Use Code Node for Transformation**:
```javascript
return items.map(item => {
  item.json.numericField = Number(item.json.stringField);
  return item;
});
```

3. **Validate Data Types**:
- Use IF node to check types before processing
- Add error handling for invalid types

**Best Practice**: Always validate and transform data types explicitly when passing data between nodes.

Fix data type conversion in 'get_related_searches_mobile'.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Rate Limiting Risk

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Auto-tag Blog Posts",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Auto-tag Blog Posts",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "84e22aae-0a0b-4bc9-94d9-aec2d9a07826",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "auto-tag-blog-posts"
      },
      "id": "e83f725c-c083-4c9d-9623-d9c092bbad2a",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "95ca42a5-e984-4245-b770-ef64b6495ec9",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "text-embedding-3-small",
        "options": {}
      },
      "id": "e515e8bb-c532-4428-a593-29f5d71ba000",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "openAiApi": {
          "id": "OPENAI_API",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "indexName": "auto-tag_blog_posts"
      },
      "id": "1aa98ca1-c389-4a1a-8f0c-58fcc64e08b4",
      "name": "Supabase Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1,
      "position": [
        270,
        0
      ],
      "credentials": {
        "supabaseApi": {
          "id": "SUPABASE_API",
          "name": "Supabase account"
        }
      }
    },...

Output:
This workflow may encounter rate limiting issues when processing large batches of data.

**Common Rate Limit Errors**:
- HTTP 429 Too Many Requests
- HTTP 503 Service Unavailable
- API-specific rate limit messages

**Root Cause**: The workflow makes too many API requests in a short time period without delays.

**Solutions**:

1. **Add Wait Nodes**: Insert a Wait node between API calls
```json
{
  "parameters": {"amount": 1, "unit": "seconds"},
  "name": "Rate Limit Delay",
  "type": "n8n-nodes-base.wait"
}
```

2. **Enable Retry on Fail**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 5000
```

3. **Use Batch Processing**: Split items into smaller batches with delays

4. **Implement Exponential Backoff**: Increase wait times with each retry

**Best Practice**: Always check API documentation for rate limits and implement appropriate throttling.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Timeout Configuration

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Customer Sentiment Analysis",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Customer Sentiment Analysis",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "9432cbf3-839c-415b-bbad-164cacd8f761",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "customer-sentiment-analysis"
      },
      "id": "deec2c7d-52f6-41d1-b6c9-f2f68cc2db9e",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "c999cc42-bc54-402b-8a6d-e8c924c27332",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "embed-english-v3.0",
        "options": {}
      },
      "id": "9c230e35-adf4-49a7-a98e-c13dfa1c4e3d",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "value": "customer_sentiment_analysis",
          "mode": "list",
          "cachedResultName": "customer_sentiment_analysis"
        }
      },
      "id": "4b1cbbe7-ae91-4cbc-9b7d-106e8def867f",
      "name": "Pinecone Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "typeVersion": 1,
      "position": [...

Output:
This workflow may experience timeout issues with long-running API requests.

**Symptoms**:
- Execution hangs indefinitely
- Connection timeout errors
- ETIMEDOUT or ESOCKETTIMEDOUT errors

**Root Cause**: No timeout configured for HTTP requests, or external services are slow.

**Solutions**:

1. **Set Appropriate Timeouts**:
```json
"options": {
  "timeout": 30000  // 30 seconds
}
```

2. **Add Error Handling**:
- Use Error Trigger node to catch timeout errors
- Implement fallback logic for failed requests

3. **Use Async Patterns**:
- For long operations, use webhook callbacks
- Implement polling patterns instead of waiting

4. **Configure Node Settings**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 2000,
"continueOnFail": true
```

**Best Practice**: Set reasonable timeouts (10-30 seconds) and always have error handling for external API calls.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Rate Limiting Risk

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Daily Content Ideas",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Daily Content Ideas",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "ca5f06fc-6dec-4477-bce5-e79c88a25e7d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "daily-content-ideas"
      },
      "id": "07884fea-1b21-4c07-9cc1-0f8c9546154d",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "cddbaad6-33bf-4933-8a99-018c63325ad8",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "embed-english-v3.0",
        "options": {}
      },
      "id": "ba875ce2-e150-47e1-8036-72573e1e142d",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "indexName": "daily_content_ideas"
      },
      "id": "5b7779c8-04ec-41ab-abf5-4f2a2d8405fd",
      "name": "Supabase Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1,
      "position": [
        270,
        0
      ],
      "credentials": {
        "supabaseApi": {
          "id": "SUPABASE_API",
          "name": "Supabase account"
        }
      }
    },
   ...

Output:
This workflow may encounter rate limiting issues when processing large batches of data.

**Common Rate Limit Errors**:
- HTTP 429 Too Many Requests
- HTTP 503 Service Unavailable
- API-specific rate limit messages

**Root Cause**: The workflow makes too many API requests in a short time period without delays.

**Solutions**:

1. **Add Wait Nodes**: Insert a Wait node between API calls
```json
{
  "parameters": {"amount": 1, "unit": "seconds"},
  "name": "Rate Limit Delay",
  "type": "n8n-nodes-base.wait"
}
```

2. **Enable Retry on Fail**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 5000
```

3. **Use Batch Processing**: Split items into smaller batches with delays

4. **Implement Exponential Backoff**: Increase wait times with each retry

**Best Practice**: Always check API documentation for rate limits and implement appropriate throttling.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Syntax Error

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Image Captioning:
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Image Captioning",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "9a206202-bc5e-4588-9adb-e4ca5d48e1a6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "image-captioning"
      },
      "id": "bff18d10-12e1-45f2-b39a-df5d164fd3d4",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "3076023c-1a26-420d-864b-e14f5091d527",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "text-embedding-3-small",
        "options": {}
      },
      "id": "6acf18f8-c2ba-4df5-a60d-75c172c5b08b",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "openAiApi": {
          "id": "OPENAI_API",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "indexName": "image_captioning"
      },
      "id": "8ec51a4a-d020-4361-9060-bca80e88dd06",
      "name": "Weaviate Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreWeaviate",
      "typeVersion": 1,
      "position": [
        270,
        0
      ],
      "credentials": {
        "weaviateApi": {
          "id": "WEAVIATE_API",
          "name": "Weaviate account"
        }
      }
    },
    {
      ...

Output: The JSON contains an unclosed string. All string values must be enclosed in double quotes.

Add the missing closing quote to complete the string.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Disconnected Node

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Product Description Generator",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Product Description Generator",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "aba83af6-dd68-4125-bd8b-55630f59b564",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "product-description-generator"
      },
      "id": "f851373d-dd54-4bce-972a-1398968ca069",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "d1531f49-ac87-48e1-a688-f69bb10a73e6",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "embed-english-v3.0",
        "options": {}
      },
      "id": "0ad45ad5-8974-40f1-86f5-59421210ff3f",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "value": "product_description_generator",
          "mode": "list",
          "cachedResultName": "product_description_generator"
        }
      },
      "id": "31f8ea33-08ab-48bf-9ba8-128fcca18cd0",
      "name": "Pinecone Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "typeVersion": 1,
      "po...

Output:
The workflow has a broken data flow. The node 'Pinecone Insert' is not connected to any subsequent nodes.

**Root Cause**: The connections object is missing the output connections for 'Pinecone Insert'.

**Impact**: Data from 'Pinecone Insert' will not flow to any downstream nodes, effectively stopping the workflow at this point.

**Solution**:
1. Open the workflow in the n8n editor
2. Draw a connection from 'Pinecone Insert' to the next node in the flow
3. Verify the connection appears in the connections object

**Programmatic Fix**: Add the connection back to the workflow JSON:
```json
"connections": {
  "Pinecone Insert": {
    "main": [[{"node": "NextNode", "type": "main", "index": 0}]]
  }
}
```

Reconnect 'Pinecone Insert' to the workflow.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Data Type Mismatch

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Resume Screening",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Resume Screening",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "455a0de7-e191-4f27-984b-0b1a975ac992",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "resume-screening",
        "_injected_number_field": "not_a_number"
      },
      "id": "fa622ed4-da7a-405b-9693-61cd99da403c",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "8bdf1d37-3aad-47ee-a8be-2be289d836cd",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "embed-english-v3.0",
        "options": {}
      },
      "id": "641c4206-18f5-4e08-86f3-9c26a0402c7b",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "indexName": "resume_screening"
      },
      "id": "52b412d1-1506-4155-955c-8bd5953d6f09",
      "name": "Weaviate Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreWeaviate",
      "typeVersion": 1,
      "position": [
        270,
        0
      ],
      "credentials": {
        "weaviateApi": {
          "id": "WEAVIATE_API",
          "name": "Weaviate...

Output:
The node 'Webhook Trigger' has a data type mismatch in its parameters.

**Issue**: A field expected a number but received a string value.

**Common Causes**:
1. Expression returns string instead of number
2. JSON parsing preserves string types for numeric values
3. Upstream node outputs different data types than expected

**Solutions**:

1. **Type Conversion in Expression**:
```javascript
// Convert string to number
{ parseInt($json.stringValue) }
{ parseFloat($json.decimalString) }
{ Number($json.value) }
```

2. **Use Code Node for Transformation**:
```javascript
return items.map(item => {
  item.json.numericField = Number(item.json.stringField);
  return item;
});
```

3. **Validate Data Types**:
- Use IF node to check types before processing
- Add error handling for invalid types

**Best Practice**: Always validate and transform data types explicitly when passing data between nodes.

Fix data type conversion in 'Webhook Trigger'.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Expression Reference Error

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Summarize Customer Emails",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Summarize Customer Emails",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "94ad1eec-70e2-4db2-b80b-385e07a22f66",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "summarize-customer-emails"
      },
      "id": "be284d5c-5194-4e36-8b98-92f89a0b69e7",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "e74ee421-b363-4e81-9878-d358db8b7f91",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "embed-english-v3.0",
        "options": {}
      },
      "id": "c6fa5ebc-8de0-422e-af77-32f485e41649",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "indexName": "summarize_customer_emails"
      },
      "id": "316539a7-288b-492f-8f01-e326e9aa6ac5",
      "name": "Weaviate Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreWeaviate",
      "typeVersion": 1,
      "position": [
        270,
        0
      ],
      "credentials": {
        "weaviateApi": {
          "id": "WEAVIATE_API",
          "name": "Weaviate account"
    ...

Output:
In node 'Slack Alert', the parameter 'channel' contains an expression that references undefined data.

**Faulty Expression**: `={{ $items[999].json.value }}`
**Original Value**: `#alerts`

**Root Cause**: The expression references a field, node, or variable that doesn't exist in the data flow.

**Debugging Steps**:
1. Check the output of previous nodes to verify available fields
2. Use the Expression Editor to test expressions interactively
3. Add a Set node before this one to inspect available data
4. Use optional chaining for potentially undefined fields: `$json.field?.subfield`

**Best Practice**: Always validate data availability before using expressions.

Fix the expression in 'Slack Alert' parameter 'channel'.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Data Type Mismatch

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Ticket Urgency Classification",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Ticket Urgency Classification",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "38027751-0f0a-4d20-a473-d97aff8830e6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "ticket-urgency-classification"
      },
      "id": "a6a7d7a0-659c-4dc7-b9ce-2ff29fde896a",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "895175a6-a438-49f8-be28-5a542c2d2c94",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "embed-english-v3.0",
        "options": {}
      },
      "id": "9f624f5d-8120-46bf-9767-38d532b83000",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "value": "ticket_urgency_classification",
          "mode": "list",
          "cachedResultName": "ticket_urgency_classification"
        }
      },
      "id": "fa749b3b-94f3-4ee4-ad85-2318a43d59bd",
      "name": "Pinecone Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "typeVersion": 1,
      "po...

Output:
The node 'Append Sheet' has a data type mismatch in its parameters.

**Issue**: A field expected a number but received a string value.

**Common Causes**:
1. Expression returns string instead of number
2. JSON parsing preserves string types for numeric values
3. Upstream node outputs different data types than expected

**Solutions**:

1. **Type Conversion in Expression**:
```javascript
// Convert string to number
{ parseInt($json.stringValue) }
{ parseFloat($json.decimalString) }
{ Number($json.value) }
```

2. **Use Code Node for Transformation**:
```javascript
return items.map(item => {
  item.json.numericField = Number(item.json.stringField);
  return item;
});
```

3. **Validate Data Types**:
- Use IF node to check types before processing
- Add error handling for invalid types

**Best Practice**: Always validate and transform data types explicitly when passing data between nodes.

Fix data type conversion in 'Append Sheet'.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Expression Reference Error

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Translate Form Submissions",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Translate Form Submissions",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "98af88ae-c2f2-41c7-a99f-9cfbdad8844e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "translate-form-submissions"
      },
      "id": "2816edde-baf3-4f2b-bcd2-a557bbd2e10a",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "8dce3eb3-ad7c-4ec9-8708-3f7b1710c2f8",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "text-embedding-3-small",
        "options": {}
      },
      "id": "eb1916e6-5f10-4275-b733-70d61eec092c",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "openAiApi": {
          "id": "OPENAI_API",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "indexName": "translate_form_submissions"
      },
      "id": "b0b4e4a9-0cbd-4c46-9ef0-e1045662f9a2",
      "name": "Supabase Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1,
      "position": [
        270,
        0
      ],
      "credentials": {
        "supabaseApi": {
          "id": "SUPABASE_API",
          "name": "Supabase accou...

Output:
In node 'RAG Agent', the parameter 'text' contains an expression that references undefined data.

**Faulty Expression**: `={{ $json["non_existent_field"] }}`
**Original Value**: `Handle data`

**Root Cause**: The expression references a field, node, or variable that doesn't exist in the data flow.

**Debugging Steps**:
1. Check the output of previous nodes to verify available fields
2. Use the Expression Editor to test expressions interactively
3. Add a Set node before this one to inspect available data
4. Use optional chaining for potentially undefined fields: `$json.field?.subfield`

**Best Practice**: Always validate data availability before using expressions.

Fix the expression in 'RAG Agent' parameter 'text'.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Timeout Configuration

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Voice Note Transcription",
  "nodes": [
    {
      "parameters": {
        "content": "Placeholder for Voice Note Transcription",
        "height": 530,
        "width": 1100,
        "color": 5
      },
      "id": "69424bcd-c308-40f9-8d9a-9477dd3c0ecb",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -480,
        -240
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "voice-note-transcription"
      },
      "id": "6752cb1f-3bcc-4bff-bbb5-2e825c981c5d",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "5d2b0243-fe4d-47b8-877d-dee5d0ad6eed",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -130,
        0
      ]
    },
    {
      "parameters": {
        "model": "embed-english-v3.0",
        "options": {}
      },
      "id": "eb8d139e-8e63-4102-b081-7b1aa4f2d579",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        70,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "options": {},
        "indexName": "voice_note_transcription"
      },
      "id": "a2f1a360-1043-483b-bded-c2ef7dcb1b8c",
      "name": "Weaviate Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreWeaviate",
      "typeVersion": 1,
      "position": [
        270,
        0
      ],
      "credentials": {
        "weaviateApi": {
          "id": "WEAVIATE_API",
          "name": "Weaviate account"
        ...

Output:
This workflow may experience timeout issues with long-running API requests.

**Symptoms**:
- Execution hangs indefinitely
- Connection timeout errors
- ETIMEDOUT or ESOCKETTIMEDOUT errors

**Root Cause**: No timeout configured for HTTP requests, or external services are slow.

**Solutions**:

1. **Set Appropriate Timeouts**:
```json
"options": {
  "timeout": 30000  // 30 seconds
}
```

2. **Add Error Handling**:
- Use Error Trigger node to catch timeout errors
- Implement fallback logic for failed requests

3. **Use Async Patterns**:
- For long operations, use webhook callbacks
- Implement polling patterns instead of waiting

4. **Configure Node Settings**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 2000,
"continueOnFail": true
```

**Best Practice**: Set reasonable timeouts (10-30 seconds) and always have error handling for external API calls.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Syntax Error

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name" "Commodity Price Tracker",
  "nodes": [
    {
      "parameters": {
        "content": "## Commodity Price Tracker",
        "height": 520,
        "width": 1100
      },
      "id": "240bb73f-5a0c-4672-a36d-98daf070734b",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "commodity_price_tracker"
      },
      "id": "c23087f3-5dcd-45fe-a5f7-51cc99d3e7e1",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "013d0864-5f21-4cb8-8867-0c0e4445483a",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default"
      },
      "id": "db0e2610-9e2f-4435-b166-81d3532dd10e",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "commodity_price_tracker"
      },
      "id": "2b3496e2-4feb-4dbc-8a5f-b1ececb2f844",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreRedis",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "redisApi": {
          "id": "REDIS_API",
          "name": "Redis account"
        }
      }
    },
    {
      "parameters": {
        "indexName": "commodity_price_tracker"
      },
      "id": "edbac296-9e6e-4152-...

Output: The JSON is missing a colon between a key and its value. JSON requires colons to separate keys from values.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Data Type Mismatch

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Crop Yield Predictor",
  "nodes": [
    {
      "parameters": {
        "content": "## Crop Yield Predictor",
        "height": 520,
        "width": 1100
      },
      "id": "f3362646-7c46-4e50-a664-66be86a30320",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "crop_yield_predictor"
      },
      "id": "189bb6ad-a417-41f6-bf7a-0e3ddda212f0",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "30e55839-628c-4aa3-80d2-3c5a7ca26f46",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default"
      },
      "id": "43e8ef2b-0af0-43f4-84f1-e72771c32adb",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsHuggingFace",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "huggingFaceApi": {
          "id": "HF_API",
          "name": "HuggingFace"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "crop_yield_predictor"
      },
      "id": "fa3aa105-97d5-48f0-9596-2c79447b9eea",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "supabaseApi": {
          "id": "SUPABASE_API",
          "name": "Supabase account"
        }
      }
    },
    {
      "parameters": {
        "indexName": "crop_yield_predictor"
      },
      "id": "aee3d47b-9...

Output:
The node 'Sheet' has a data type mismatch in its parameters.

**Issue**: A field expected a number but received a string value.

**Common Causes**:
1. Expression returns string instead of number
2. JSON parsing preserves string types for numeric values
3. Upstream node outputs different data types than expected

**Solutions**:

1. **Type Conversion in Expression**:
```javascript
// Convert string to number
{ parseInt($json.stringValue) }
{ parseFloat($json.decimalString) }
{ Number($json.value) }
```

2. **Use Code Node for Transformation**:
```javascript
return items.map(item => {
  item.json.numericField = Number(item.json.stringField);
  return item;
});
```

3. **Validate Data Types**:
- Use IF node to check types before processing
- Add error handling for invalid types

**Best Practice**: Always validate and transform data types explicitly when passing data between nodes.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Rate Limiting Risk

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Drone Image Crop Health",
  "nodes": [
    {
      "parameters": {
        "content": "## Drone Image Crop Health",
        "height": 520,
        "width": 1100
      },
      "id": "5021afba-679d-4168-84d0-ddf4a0bc7335",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "drone_image_crop_health"
      },
      "id": "990495aa-c27d-4380-9ea8-c2c379723be0",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "10dd6e0f-6225-4179-a7cf-bc2d08425295",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default"
      },
      "id": "bf3dc7ec-7f5e-4f2c-a477-d7c6dc41100d",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "openAiApi": {
          "id": "OPENAI_API",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "drone_image_crop_health"
      },
      "id": "2f5b44a3-5535-4472-900f-3c779acf0c88",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "supabaseApi": {
          "id": "SUPABASE_API",
          "name": "Supabase account"
        }
      }
    },
    {
      "parameters": {
        "indexName": "drone_image_crop_health"
      },
      "id": "34ff1a...

Output:
This workflow may encounter rate limiting issues when processing large batches of data.

**Common Rate Limit Errors**:
- HTTP 429 Too Many Requests
- HTTP 503 Service Unavailable
- API-specific rate limit messages

**Root Cause**: The workflow makes too many API requests in a short time period without delays.

**Solutions**:

1. **Add Wait Nodes**: Insert a Wait node between API calls
```json
{
  "parameters": {"amount": 1, "unit": "seconds"},
  "name": "Rate Limit Delay",
  "type": "n8n-nodes-base.wait"
}
```

2. **Enable Retry on Fail**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 5000
```

3. **Use Batch Processing**: Split items into smaller batches with delays

4. **Implement Exponential Backoff**: Increase wait times with each retry

**Best Practice**: Always check API documentation for rate limits and implement appropriate throttling.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Data Type Mismatch

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Farm Equipment Maintenance Reminder",
  "nodes": [
    {
      "parameters": {
        "content": "## Farm Equipment Maintenance Reminder",
        "height": 520,
        "width": 1100
      },
      "id": "043695df-1656-4961-bbca-d12a2c3545c3",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "farm_equipment_maintenance_reminder"
      },
      "id": "6f478769-d464-4f1e-9045-a60a13ff6b8c",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "b15188a4-238f-432d-99d6-1b364a65d5d1",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default",
        "_injected_number_field": "not_a_number"
      },
      "id": "b674f49d-427c-4da6-8cd8-66f82b3ea0a2",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "openAiApi": {
          "id": "OPENAI_API",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "farm_equipment_maintenance_reminder"
      },
      "id": "2b52a165-3367-474e-9212-4642f59e989c",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreWeaviate",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "weaviateApi": {
          "id": "WEAVIATE_API",
          "name": "Weaviate account"
        }
      }
    },
    {...

Output:
The node 'Embeddings' has a data type mismatch in its parameters.

**Issue**: A field expected a number but received a string value.

**Common Causes**:
1. Expression returns string instead of number
2. JSON parsing preserves string types for numeric values
3. Upstream node outputs different data types than expected

**Solutions**:

1. **Type Conversion in Expression**:
```javascript
// Convert string to number
{ parseInt($json.stringValue) }
{ parseFloat($json.decimalString) }
{ Number($json.value) }
```

2. **Use Code Node for Transformation**:
```javascript
return items.map(item => {
  item.json.numericField = Number(item.json.stringField);
  return item;
});
```

3. **Validate Data Types**:
- Use IF node to check types before processing
- Add error handling for invalid types

**Best Practice**: Always validate and transform data types explicitly when passing data between nodes.

Fix data type conversion in 'Embeddings'.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Disconnected Node

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Greenhouse Climate Controller",
  "nodes": [
    {
      "parameters": {
        "content": "## Greenhouse Climate Controller",
        "height": 520,
        "width": 1100
      },
      "id": "f6ca7701-10db-40e0-8d19-15ca44eb181b",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "greenhouse_climate_controller"
      },
      "id": "9d22707c-cdbb-4c29-acee-a55b6b22edaa",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "1d527680-2885-42f3-95d0-5e2f80a6459c",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default"
      },
      "id": "f59009f4-499a-48f1-a921-5437a150897e",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsHuggingFace",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "huggingFaceApi": {
          "id": "HF_API",
          "name": "HuggingFace"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "greenhouse_climate_controller"
      },
      "id": "8be33fea-e4d6-4dad-b2b5-3bb5b7272e20",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "pineconeApi": {
          "id": "PINECONE_API",
          "name": "Pinecone account"
        }
      }
    },
    {
      "parameters": {
        "indexName": "greenhouse_climate...

Output:
The workflow has a broken data flow. The node 'Memory' is not connected to any subsequent nodes.

**Root Cause**: The connections object is missing the output connections for 'Memory'.

**Impact**: Data from 'Memory' will not flow to any downstream nodes, effectively stopping the workflow at this point.

**Solution**:
1. Open the workflow in the n8n editor
2. Draw a connection from 'Memory' to the next node in the flow
3. Verify the connection appears in the connections object

**Programmatic Fix**: Add the connection back to the workflow JSON:
```json
"connections": {
  "Memory": {
    "main": [[{"node": "NextNode", "type": "main", "index": 0}]]
  }
}
```


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Data Type Mismatch

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Harvest Logbook",
  "nodes": [
    {
      "parameters": {
        "content": "## Harvest Logbook",
        "height": 520,
        "width": 1100
      },
      "id": "436f9ee5-71c5-42d5-b7fc-dbcff2db8134",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "harvest_logbook"
      },
      "id": "c2c61283-94fd-4552-8f32-1312df1c40e6",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "b038312f-6c74-4c50-9f90-e5cedfb704bb",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default"
      },
      "id": "c4589904-fde4-4e34-b7ad-2f7df057a39c",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "openAiApi": {
          "id": "OPENAI_API",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "harvest_logbook"
      },
      "id": "e45e34b1-8494-4788-97f1-6d0beb8dd889",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "pineconeApi": {
          "id": "PINECONE_API",
          "name": "Pinecone account"
        }
      }
    },
    {
      "parameters": {
        "indexName": "harvest_logbook"
      },
      "id": "b4c4018d-17a4-4a6d-98f5-14977e9b74ea",
      "...

Output:
The node 'Tool' has a data type mismatch in its parameters.

**Issue**: A field expected a number but received a string value.

**Common Causes**:
1. Expression returns string instead of number
2. JSON parsing preserves string types for numeric values
3. Upstream node outputs different data types than expected

**Solutions**:

1. **Type Conversion in Expression**:
```javascript
// Convert string to number
{ parseInt($json.stringValue) }
{ parseFloat($json.decimalString) }
{ Number($json.value) }
```

2. **Use Code Node for Transformation**:
```javascript
return items.map(item => {
  item.json.numericField = Number(item.json.stringField);
  return item;
});
```

3. **Validate Data Types**:
- Use IF node to check types before processing
- Add error handling for invalid types

**Best Practice**: Always validate and transform data types explicitly when passing data between nodes.


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Disconnected Node

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Irrigation Schedule Optimizer",
  "nodes": [
    {
      "parameters": {
        "content": "## Irrigation Schedule Optimizer",
        "height": 520,
        "width": 1100
      },
      "id": "f61a51a0-1b5e-4f7d-ae28-7a1d87585c3b",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "irrigation_schedule_optimizer"
      },
      "id": "330670e3-af28-42a0-9fbd-cb93e2b7dd56",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "311d8f6e-c5f9-424b-b475-51b26395127e",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default"
      },
      "id": "6bcaa39d-c038-4d22-b2f6-b064ec027d5e",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "openAiApi": {
          "id": "OPENAI_API",
          "name": "OpenAI"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "irrigation_schedule_optimizer"
      },
      "id": "023182c5-967c-44e4-99c6-84e3ffb287d3",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "pineconeApi": {
          "id": "PINECONE_API",
          "name": "Pinecone account"
        }
      }
    },
    {
      "parameters": {
        "indexName": "irrigation_schedule_optimizer...

Output:
The workflow has a broken data flow. The node 'Memory' is not connected to any subsequent nodes.

**Root Cause**: The connections object is missing the output connections for 'Memory'.

**Impact**: Data from 'Memory' will not flow to any downstream nodes, effectively stopping the workflow at this point.

**Solution**:
1. Open the workflow in the n8n editor
2. Draw a connection from 'Memory' to the next node in the flow
3. Verify the connection appears in the connections object

**Programmatic Fix**: Add the connection back to the workflow JSON:
```json
"connections": {
  "Memory": {
    "main": [[{"node": "NextNode", "type": "main", "index": 0}]]
  }
}
```


Instruction:
Debug this n8n workflow. It has the following issue:
Error Type: Rate Limiting Risk

Please analyze the workflow JSON and explain:
1. What is wrong
2. Why it's causing problems
3. How to fix it

Workflow JSON:
{
  "name": "Pest Outbreak Alert",
  "nodes": [
    {
      "parameters": {
        "content": "## Pest Outbreak Alert",
        "height": 520,
        "width": 1100
      },
      "id": "c31581de-ca68-49e9-b317-f3739537da27",
      "name": "Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -500,
        -250
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "pest_outbreak_alert"
      },
      "id": "63496e27-d0de-4da6-8c37-4e92b46b62fd",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -300,
        0
      ]
    },
    {
      "parameters": {
        "chunkSize": 400,
        "chunkOverlap": 40
      },
      "id": "887889f4-c9aa-4759-85fc-3263cc7d4ca0",
      "name": "Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        -100,
        0
      ]
    },
    {
      "parameters": {
        "model": "default"
      },
      "id": "e02bdccc-12f6-4101-abca-c1aaac144466",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "credentials": {
        "cohereApi": {
          "id": "COHERE_API",
          "name": "Cohere"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "indexName": "pest_outbreak_alert"
      },
      "id": "6dcce654-7ee3-453c-b54a-bb6151ef25d3",
      "name": "Insert",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "typeVersion": 1,
      "position": [
        300,
        0
      ],
      "credentials": {
        "pineconeApi": {
          "id": "PINECONE_API",
          "name": "Pinecone account"
        }
      }
    },
    {
      "parameters": {
        "indexName": "pest_outbreak_alert"
      },
      "id": "5db24659-3cf4-4917-b295-84...

Output:
This workflow may encounter rate limiting issues when processing large batches of data.

**Common Rate Limit Errors**:
- HTTP 429 Too Many Requests
- HTTP 503 Service Unavailable
- API-specific rate limit messages

**Root Cause**: The workflow makes too many API requests in a short time period without delays.

**Solutions**:

1. **Add Wait Nodes**: Insert a Wait node between API calls
```json
{
  "parameters": {"amount": 1, "unit": "seconds"},
  "name": "Rate Limit Delay",
  "type": "n8n-nodes-base.wait"
}
```

2. **Enable Retry on Fail**:
```json
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 5000
```

3. **Use Batch Processing**: Split items into smaller batches with delays

4. **Implement Exponential Backoff**: Increase wait times with each retry

**Best Practice**: Always check API documentation for rate limits and implement appropriate throttling.

Add rate limiting protection with Wait nodes and retry logic.