Travel Content Generator

Refresh

Attach existing task

Create a task

CRUISE – generation by link,
EXCURSION – according to the document.

Required field for cruises.

Select one or more sections to generate. Leave empty to generate all sections.

Optional field (for additional description).

Tasks

Total: 131
652
EXCURSION
Completed
Error details
{
    "level": "error",
    "detail": "HTTP request returned status code 500:\n{\"code\":0,\"message\":\"There was a problem executing the workflow\"}\n",
    "message": "Failed to fetch task status"
}
651
EXCURSION
Completed
Error details
{
    "level": "error",
    "detail": "HTTP request returned status code 404:\n{\"code\":404,\"message\":\"Could not find workflow with id \\\"C7mgGCeUKsfNzVnU\\\"\"}\n",
    "message": "Failed to fetch task status"
}
648
EXCURSION
Failed
Pending…
Error details
{
    "level": "error",
    "detail": "HTTP request returned status code 404:\n{\"code\":404,\"message\":\"Could not find workflow with id \\\"C7mgGCeUKsfNzVnU\\\"\"}\n",
    "message": "Failed to fetch task status"
}
647
EXCURSION
Failed
Pending…
Error details
{
    "level": "error",
    "detail": "HTTP request returned status code 404:\n{\"code\":404,\"message\":\"Could not find workflow with id \\\"C7mgGCeUKsfNzVnU\\\"\"}\n",
    "message": "Failed to fetch task status"
}
646
EXCURSION
Completed
Error details
{
    "level": "error",
    "detail": "HTTP request returned status code 404:\n{\"code\":404,\"message\":\"Could not find workflow with id \\\"C7mgGCeUKsfNzVnU\\\"\"}\n",
    "message": "Failed to fetch task status"
}
643
EXCURSION
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "1ea7b457-f607-4150-af97-0c913586a61e",
        "name": "Image Search Keywords",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            256,
            1344
        ],
        "parameters": {
            "text": "={{ $('Call \\'Excursions Agents\\'').item.json.output.toJsonString() }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a image search optimization expert for Vanilla Travel. Your role is to generate highly effective English search queries that will find relevant, high-quality travel images on google.\n\n**Your Objectives:**\n1. Generate 8-12 optimized Google search queries in English\n2. Translate Latvian destination\/attraction names to English\n3. Distribute queries across 4 image categories\n4. Prioritize queries by importance\n5. Include specific landmarks, activities, and cultural elements\n\n**Input Data:**\n- Destination name (may be in Latvian)\n- Program highlights (key attractions, UNESCO sites, natural wonders)\n- Activities (trekking, snorkeling, cultural tours, etc.)\n- Program summary (brief overview of the trip)\n\n**Output Requirements:**\n- 8-12 search queries total\n- Category distribution:\n  - iconic: 2-3 queries (famous landmarks, panoramic views)\n  - program: 3-4 queries (specific program highlights)\n  - activities: 2-3 queries (things travelers will do)\n  - culture: 1-2 queries (local culture, traditions, markets)\n- Each query: 3-6 words, English only\n- Include destination name in most queries\n- Priority: 1 (must-have), 2 (important), 3 (nice-to-have)\n\n**Query Optimization Rules:**\n1. **Be specific:** \"baobab avenue Madagascar sunset\" > \"Madagascar trees\"\n2. **Include location:** \"lemur Ranomafana National Park\" > \"lemur Madagascar\"\n3. **Use English:** \"Avenue of the Baobabs\" not \"Baobabu aleja\"\n4. **Add context:** \"snorkeling coral reef Nosy Be\" > \"snorkeling Madagascar\"\n5. **Avoid generic terms:** \"Madagascar landscape\" is too broad\n6. **Include visual keywords:** \"sunset\", \"aerial view\", \"golden hour\", \"turquoise water\"\n\n**Translation Examples:**\n- \"Madagaskara\" → \"Madagascar\"\n- \"Baobabu aleja\" → \"baobab avenue Madagascar\" or \"Avenue of the Baobabs\"\n- \"Lemuru novērošana\" → \"lemur watching\" or \"lemur wildlife\"\n- \"Tsingy de Bemaraha\" → \"Tsingy de Bemaraha\" (keep UNESCO site names)\n- \"Dubaija\" → \"Dubai\"\n- \"Karību jūra\" → \"Caribbean\"\n- \"Āfrika\" → \"Africa\"\n- \"Āzija\" → \"Asia\"\n\n**Category Guidelines:**\n\n**Iconic (2-3 queries):**\n- Famous landmarks everyone recognizes\n- Panoramic destination views\n- UNESCO World Heritage sites\n- \"Postcard\" shots that define the destination\n\nExamples:\n- \"Eiffel Tower Paris sunset golden hour\"\n- \"Taj Mahal India sunrise reflection\"\n- \"Grand Canyon Arizona panoramic view\"\n\n**Program (3-4 queries):**\n- Specific attractions mentioned in the program\n- Natural wonders travelers will visit\n- Key experiences unique to this trip\n- Places featured in the itinerary\n\nExamples:\n- \"lemur wildlife Ranomafana National Park\"\n- \"Burj Khalifa Dubai skyline night\"\n- \"Santorini white buildings blue domes\"\n\n**Activities (2-3 queries):**\n- Things travelers will actively do\n- Adventure activities (hiking, snorkeling, etc.)\n- Wildlife watching, cultural tours\n- Action-oriented experiences\n\nExamples:\n- \"snorkeling coral reef tropical fish\"\n- \"hiking mountain trail backpack\"\n- \"safari jeep wildlife Africa\"\n\n**Culture (1-2 queries):**\n- Local markets, villages, traditions\n- Cultural performances, crafts\n- Street scenes, daily life\n- Traditional food, festivals\n\nExamples:\n- \"Moroccan market spices colorful\"\n- \"traditional Japanese tea ceremony\"\n- \"Balinese temple ceremony culture\"\n\n**Forbidden:**\n- Generic queries: \"travel\", \"vacation\", \"tourism\"\n- Overly broad terms: \"nature\", \"landscape\", \"beach\" (without location)\n- Latvian language queries (Googles is English-indexed)\n- Duplicate or near-duplicate queries\n- Queries without destination context\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 8-12 queries, category distribution, priorities\n\n**WRONG ❌:**\n```\n```json\n{\"queries\": [...]}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the search queries: {\"queries\": [...]}\n```\n\n**CORRECT ✅:**\n```\n{\"queries\": [...]}\n```\n\n\n**Output:**\n```json\n{\n  \"queries\": [\n    {\n      \"query\": \"baobab avenue Madagascar sunset golden hour\",\n      \"category\": \"iconic\",\n      \"priority\": 1\n    },\n    {\n      \"query\": \"Tsingy de Bemaraha limestone formations aerial view\",\n      \"category\": \"iconic\",\n      \"priority\": 1\n    },\n    {\n      \"query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n      \"category\": \"program\",\n      \"priority\": 1\n    },\n    {\n      \"query\": \"Avenue of the Baobabs landscape Madagascar\",\n      \"category\": \"program\",\n      \"priority\": 1\n    },\n    {\n      \"query\": \"Madagascar coastline beach turquoise water\",\n      \"category\": \"program\",\n      \"priority\": 2\n    },\n    {\n      \"query\": \"Isalo National Park canyon Madagascar\",\n      \"category\": \"program\",\n      \"priority\": 2\n    },\n    {\n      \"query\": \"hiking trekking Madagascar mountains landscape\",\n      \"category\": \"activities\",\n      \"priority\": 2\n    },\n    {\n      \"query\": \"snorkeling coral reef Madagascar underwater\",\n      \"category\": \"activities\",\n      \"priority\": 2\n    },\n    {\n      \"query\": \"Malagasy traditional village culture Madagascar\",\n      \"category\": \"culture\",\n      \"priority\": 2\n    },\n    {\n      \"query\": \"Antananarivo market street scene Madagascar\",\n      \"category\": \"culture\",\n      \"priority\": 3\n    }\n  ]\n}\n```\n\n---\n\n## Validation Rules\n\n**The output MUST satisfy these constraints:**\n\n1. **Total queries:** Exactly 8-12 queries\n2. **Category distribution:**\n   - iconic: 2-3 queries\n   - program: 3-4 queries\n   - activities: 2-3 queries\n   - culture: 1-2 queries\n3. **Language:** All queries in English\n4. **Query length:** 10-80 characters per query\n5. **Priority distribution:** At least 3 queries with priority=1\n6. **Destination inclusion:** Destination name appears in 70%+ of queries\n7. **No duplicates:** Each query must be unique\n8. **Specificity:** No generic queries like \"travel\" or \"vacation\"\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] All Latvian terms translated to English\n- [ ] Specific landmarks\/attractions included (not just \"Madagascar beach\")\n- [ ] Visual keywords added (\"sunset\", \"aerial view\", \"golden hour\")\n- [ ] Category distribution matches requirements (2-3 iconic, 3-4 program, etc.)\n- [ ] Priority 1 assigned to most important\/iconic queries\n- [ ] No duplicate or near-duplicate queries\n- [ ] Destination name included in most queries\n- [ ] Queries are 3-6 words (not too short, not too long)\n- [ ] JSON is valid and matches schema exactly\n\n---\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: A Chat Model sub-node must be connected and enabled\n    at validateInputConfiguration (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/utils\/get-input-connection-data.ts:231:11)\n    at ExecuteContext.getInputConnectionData (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/utils\/get-input-connection-data.ts:271:2)\n    at ExecuteContext.getInputConnectionData (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/execute-context.ts:180:39)\n    at getChatModel (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:345:36)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:207:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27",
    "context": [],
    "message": "A Chat Model sub-node must be connected and enabled",
    "messages": [],
    "timestamp": 1769700390365,
    "functionality": "regular"
}
642
EXCURSION
Failed
Pending…
Error details
{
    "name": "ExpressionError",
    "tags": [],
    "cause": {
        "output": "={{ $('results').item.json.output.result.toJsonString() }}",
        "status": "generating_image_keywords"
    },
    "level": "warning",
    "stack": "ExpressionError: Referenced node doesn't exist\n    at createExpressionError (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-workflow@file+packages+workflow\/node_modules\/n8n-workflow\/src\/workflow-data-proxy.ts:790:11)\n    at Proxy.$ (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-workflow@file+packages+workflow\/node_modules\/n8n-workflow\/src\/workflow-data-proxy.ts:1067:12)\n    at Proxy.eval (eval at getFunction (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+tournament@1.0.6\/node_modules\/@n8n\/tournament\/src\/FunctionEvaluator.ts:13:16), <anonymous>:6:84)\n    at FunctionEvaluator.evaluate (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+tournament@1.0.6\/node_modules\/@n8n\/tournament\/src\/FunctionEvaluator.ts:20:13)\n    at Tournament.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+tournament@1.0.6\/node_modules\/@n8n\/tournament\/src\/index.ts:45:25)\n    at evaluateExpression (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-workflow@file+packages+workflow\/node_modules\/n8n-workflow\/src\/expression-evaluator-proxy.ts:20:9)\n    at Expression.renderExpression (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-workflow@file+packages+workflow\/node_modules\/n8n-workflow\/src\/expression.ts:463:29)\n    at Expression.resolveSimpleParameterValue (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-workflow@file+packages+workflow\/node_modules\/n8n-workflow\/src\/expression.ts:444:28)\n    at resolveParameterValue (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-workflow@file+packages+workflow\/node_modules\/n8n-workflow\/src\/expression.ts:626:16)\n    at Expression.getParameterValue (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-workflow@file+packages+workflow\/node_modules\/n8n-workflow\/src\/expression.ts:683:22)",
    "context": {
        "runIndex": 0,
        "itemIndex": 0,
        "nodeCause": "results",
        "parameter": "columns.value",
        "descriptionKey": "nodeNotFound"
    },
    "message": "Referenced node doesn't exist",
    "timestamp": 1769699168913,
    "functionality": "regular"
}
641
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
        "name": "Program Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            288
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
            "notice": "",
            "options": {
                "maxIterations": 10,
                "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1769617274775,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.",
    "executionId": "29814",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
            "name": "Program Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                288
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
                "notice": "",
                "options": {
                    "maxIterations": 10,
                    "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.\",\n    \"errors\": [\n      {\n        \"message\": \"Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.\",\n        \"domain\": \"global\",\n        \"reason\": \"rateLimitExceeded\"\n      }\n    ],\n    \"status\": \"RESOURCE_EXHAUSTED\"\n  }\n}\n"
        ],
        "timestamp": 1769617274743,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.",
        "executionId": "29814",
        "functionality": "regular"
    },
    "functionality": "regular"
}
640
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
        "name": "Program Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            288
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
            "notice": "",
            "options": {
                "maxIterations": 10,
                "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1769617807899,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.",
    "executionId": "29813",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
            "name": "Program Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                288
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
                "notice": "",
                "options": {
                    "maxIterations": 10,
                    "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.\",\n    \"errors\": [\n      {\n        \"message\": \"Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.\",\n        \"domain\": \"global\",\n        \"reason\": \"rateLimitExceeded\"\n      }\n    ],\n    \"status\": \"RESOURCE_EXHAUSTED\"\n  }\n}\n"
        ],
        "timestamp": 1769617807866,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "Resource exhausted. Please try again later. Please refer to https:\/\/cloud.google.com\/vertex-ai\/generative-ai\/docs\/error-code-429 for more details.",
        "executionId": "29813",
        "functionality": "regular"
    },
    "functionality": "regular"
}
639
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "58d6efe9-6133-4448-9c4f-ca814420cda9",
        "name": "HTTP Request1",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -496,
            1440
        ],
        "parameters": {
            "url": "=https:\/\/api.dify.ai\/v1\/workflows\/run\/{{ $json.workflow_run_id }}",
            "method": "GET",
            "options": [],
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "keypair",
            "authentication": "none",
            "bodyParameters": {
                "parameters": [
                    {
                        "name": "",
                        "value": ""
                    }
                ]
            },
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: The resource you are requesting could not be found\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run\/",
            "body": {
                "": ""
            },
            "gzip": true,
            "json": false,
            "method": "GET",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 300000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "The resource you are requesting could not be found",
    "httpCode": "404",
    "messages": [
        "404 - \"<!doctype html>\\n<html lang=en>\\n<title>404 Not Found<\/title>\\n<h1>Not Found<\/h1>\\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\\n<script defer src=\\\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\\\" integrity=\\\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\\\" data-cf-beacon='{\\\"version\\\":\\\"2024.11.0\\\",\\\"token\\\":\\\"ee206d1e4d424fb88d9c2fc428ed0634\\\",\\\"server_timing\\\":{\\\"name\\\":{\\\"cfCacheStatus\\\":true,\\\"cfEdge\\\":true,\\\"cfExtPri\\\":true,\\\"cfL4\\\":true,\\\"cfOrigin\\\":true,\\\"cfSpeedBrain\\\":true},\\\"location_startswith\\\":null}}' crossorigin=\\\"anonymous\\\"><\/script>\\n\""
    ],
    "timestamp": 1769616332866,
    "description": "<!doctype html>\n<html lang=en>\n<title>404 Not Found<\/title>\n<h1>Not Found<\/h1>\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\n<script defer src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon='{\"version\":\"2024.11.0\",\"token\":\"ee206d1e4d424fb88d9c2fc428ed0634\",\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}' crossorigin=\"anonymous\"><\/script>\n",
    "functionality": "regular"
}
638
EXCURSION
Completed
Error details
{
    "tags": [],
    "level": "warning",
    "stack": "Error: This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.\n    at \/usr\/local\/lib\/node_modules\/n8n\/src\/workflow-runner.ts:438:15\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)",
    "message": "This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.",
    "shouldReport": false
}
637
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "58d6efe9-6133-4448-9c4f-ca814420cda9",
        "name": "HTTP Request1",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -496,
            1440
        ],
        "parameters": {
            "url": "=https:\/\/api.dify.ai\/v1\/workflows\/run\/{{ $json.workflow_run_id }}",
            "method": "GET",
            "options": [],
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "keypair",
            "authentication": "none",
            "bodyParameters": {
                "parameters": [
                    {
                        "name": "",
                        "value": ""
                    }
                ]
            },
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: The resource you are requesting could not be found\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run\/",
            "body": {
                "": ""
            },
            "gzip": true,
            "json": false,
            "method": "GET",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 300000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "The resource you are requesting could not be found",
    "httpCode": "404",
    "messages": [
        "404 - \"<!doctype html>\\n<html lang=en>\\n<title>404 Not Found<\/title>\\n<h1>Not Found<\/h1>\\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\\n<script defer src=\\\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\\\" integrity=\\\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\\\" data-cf-beacon='{\\\"version\\\":\\\"2024.11.0\\\",\\\"token\\\":\\\"ee206d1e4d424fb88d9c2fc428ed0634\\\",\\\"server_timing\\\":{\\\"name\\\":{\\\"cfCacheStatus\\\":true,\\\"cfEdge\\\":true,\\\"cfExtPri\\\":true,\\\"cfL4\\\":true,\\\"cfOrigin\\\":true,\\\"cfSpeedBrain\\\":true},\\\"location_startswith\\\":null}}' crossorigin=\\\"anonymous\\\"><\/script>\\n\""
    ],
    "timestamp": 1769018244109,
    "description": "<!doctype html>\n<html lang=en>\n<title>404 Not Found<\/title>\n<h1>Not Found<\/h1>\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\n<script defer src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon='{\"version\":\"2024.11.0\",\"token\":\"ee206d1e4d424fb88d9c2fc428ed0634\",\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}' crossorigin=\"anonymous\"><\/script>\n",
    "functionality": "regular"
}
636
EXCURSION
Failed
Pending…
Error details
{
    "code": "ECONNRESET",
    "stack": "Error: aborted\n    at TLSSocket.socketCloseListener (node:_http_client:534:19)\n    at TLSSocket.emit (node:events:531:35)\n    at node:net:346:12\n    at TCP.done (node:_tls_wrap:650:7)",
    "message": "aborted"
}
635
EXCURSION
Failed
Pending…
Error details
{
    "tags": [],
    "level": "warning",
    "stack": "Error: This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.\n    at \/usr\/local\/lib\/node_modules\/n8n\/src\/workflow-runner.ts:438:15\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)",
    "message": "This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.",
    "shouldReport": false
}
634
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "87bd86c7-732b-483c-a062-6ef70b1d5807",
        "name": "HTTP Request",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -912,
            1440
        ],
        "parameters": {
            "url": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "method": "POST",
            "options": {
                "timeout": 100000
            },
            "jsonBody": "={\n  \"inputs\":{\n  \"processed_doc\": {{ $('Excursion Request Body').item.json.processed_doc.toJsonString() }},\n  \"section\": \"{{ $('Excursion Request Body').item.json.section }}\",\n\"additional_information\": {{ $('Excursion Request Body').item.json.additional_info.toJsonString() }}\n  \n},\n  \"response_mode\": \"streaming\",\n  \"user\": \"n8n\"\n}",
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "none",
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: Bad request - please check your parameters\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "body": {
                "user": "n8n",
                "inputs": {
                    "section": "all",
                    "processed_doc": "EKSOTISKĀKĀS INDONĒZIJAS SALAS: JAVA, SULAVESI, PAPUA\nJAUNGVINEJA\nAR CIVILIZĀCIJAS ATTĪSTĪBAS KULMINĀCIJU SINGAPŪRĀ\n\n                 Borobudur templis  - Java                      Wamenas iezemieši - Papua\n\nDATUMS\n\n04. Feb\nTrešd\n\n5. Feb\nCeturt\n\nPROGRAMMA\n\nĒDIN  VIESNĪCA\n\nRIGA - ISTANBUL\n18:55 Izlidošana no Rīgas ar TK1776\n23:15 Ielidošana Stambulā\n\nISTANBUL - JAKARTA\n02:45 Izlidošana no Stambulas\n18:00 Ielidošana Džakartā\nVakariņas vietējā restorānā, kur turpinām svinēt Raimondas dzimšanas\ndienu, trasfērs uz viesnīcu.\n\nV\n\nFM 7\nHotel\nJakarta 4*\n\nIndonēzijas galvaspilsēta, kas atrodas Javas salas ZR piekrastē.\nNīderlandiešu kolonija no 17.gads sākuma, šodien ir moderna metropole\nar 11 miljoniem iedzīvotāju, kā lielā skudrupūznī dzīvē mutuļo.\n\nVēsturisks kultūru sajaukums – javiešu, malajiešu, ķīniešu, arābu, indiešu\nun eiropiešu – ir ietekmējis tās arhitektūru, valodu un virtuvi. Vecpilsētā\nKota Tua atrodas Nīderlandes koloniālās celtnes, Glodoka (Džakartas\nķīniešu kvartāls) un vecā Sunda Kelapas osta, kurā piestāj tradicionālās\nkoka laivas.\n\n6. Feb\nPIekt\n\n10:00 Džakartas pilsētas apskate.\nVēsturisks kultūru sajaukums – javiešu, malajiešu, ķīniešu, arābu, indiešu\nun eiropiešu – ir ietekmējis tās arhitektūru, valodu un virtuvi. Vecpilsētā\nKota Tua atrodas Nīderlandes koloniālās celtnes, Glodoka (Džakartas\nķīniešu kvartāls) un vecā Sunda Kelapas osta, kurā piestāj tradicionālās\nkoka laivas.\n18:00 Atgriešanās viesnīcā.\n\nB,P,V  FM 7\nHotel\nJakarta 4*\n\n7. Feb\nSest\n\nJAKARTA - JOYAKARTA\n8:00 ierašanās lidostā.\n\nB,P,V  Kimaya\n\n\f10:00 izdidošana uz  Jogyakarta\n11:10 ielidošana un Karalisās pils un ūdens pils Taman sari (dārzs)\napmeklējums.\n\nHyatt\nRegency\n\nJogjakarta ir  īpašā reģiona galvaspilsēta Indonēzijā, Javas salas\ndienvidu-centrālajā daļā . Jogjakarta ir vienīgā Indonēzijas karaliskā\npilsēta, kurā joprojām valda monarhija , un tā tiek uzskatīta par nozīmīgu\njavas klasiskās tēlotājmākslas un kultūras centru , piemēram, baletu,\nbatikas tekstilizstrādājumiem, drāmu, literatūru , mūziku , dzeju ,\nsudrabkaļu, vizuālo mākslu un wayang leļļu teātri.  Jogjakarta ir slavena\nkā Indonēzijas izglītības centrs , un tajā dzīvo liels studentu skaits un\ndesmitiem skolu un universitāšu, tostarp Gadjah Mada University , valsts\nlielākā augstākās izglītības institūts un viena no prestižākajām.\n\nJogjakarta ir Jogjakartas Sultanāta galvaspilsēta un kalpoja kā Indonēzijas\ngalvaspilsēta no 1946. līdz 1948. gadam Indonēzijas nacionālās\nrevolūcijas laikā, un Gedung Agung bija prezidenta birojs. Viens no\nJogjakartas dienvidaustrumu rajoniem Kotā bija Mataramas sultanāta\ngalvaspilsēta no 1587. līdz 1613. Gadam.\n\nPils ir Jogjakartas valdošā sultāna un viņa ģimenes mītne . Komplekss ir\nJavas kultūras centrs , un tajā ir muzejs, kurā apskatāmi karaliski artefakti.\n\nTaman sari dārzs tika uzcelts sultāna Hamengku Buvono I (HB I)\nvaldīšanas laikā 1758.–1765.\/9. Sākotnēji parka, kas tika saukts par \"\nSmaržīgo dārzu \", platība bija vairāk nekā 10 hektāri ar aptuveni 57 ēkām\nēku, peldbaseinu, piekaramo tiltu, ūdens kanālu un mākslīgo ezeru ar\nmākslīgām salām un zemūdens tuneļiem veidā\n\nPēc pusdienām 30 minūšu brauciens uz Prabanan templi (ieejas biļete\njāpēerk uz vietas - 27EUR no cilvēka).\n\nPrambanana ir 9. gadsimta hinduistu tempļu komplekss Javas īpašajā\nJogjakartas reģionā, dienvidos veltīts Dievam . Radītājs ( Brahma ),\nSaglabātājs ( Višnu ) un Iznīcinātājs ( Šiva ). Tempļa komplekss atrodas\naptuveni 17 kilometrus  uz ziemeļaustrumiem no Jogjakartas pilsētas uz\nrobežas starp Centrāljavas un Jogjakartas provincē.\n\nTempļa komplekss, kas iekļauts UNESCO Pasaules mantojuma sarakstā ,\nir lielākā hinduistu tempļa vieta Indonēzijā un otra lielākā\nDienvidaustrumāzijā pēc Ankorvatas. To raksturo tā augstā un smailā\narhitektūra, kas raksturīga hinduistu arhitektūrai, un 47 metrus augsta\ncentrālā ēka lielā atsevišķu tempļu kompleksā.  Prambananas tempļu\nkompleksi sākotnēji sastāvēja no 240 tempļu struktūrām, kas pārstāvēja\nsenās Javas hinduistu mākslas un arhitektūras varenību, kā arī tiek\nuzskatītas par Indonēzijas klasiskā perioda šedevru.\n\nSuvenīru veikali.\n\n\f8. Feb\nSvētd\n\nJohjakarta - Borobudur templis - Unesco mantojuma sarakstā iekļauts\n1970.gadā.\n8:30 Izbraukšana uz Borobudur templi (ieejas biļete jāpērk uz vietas -\ncena 45 EUR).\nApmēram pusotras stundas braucienā atrodas šis slavenais budistu\ntemplis, kasir viens no lielākajiem budistu pieminekļiem pasaulē, un tas\ntika uzcelts mūsu ēras 8. un 9. gadsimtā Syailendra dinastijas valdīšanas\nlaikā. Piemineklis atrodas Kedu ielejā.\n\nB,P,V  Nakts\nlidojot\n\nTemplis ir jāuzskata arī par izcilu Syailendra dinastijas dinastijas\npieminekli, kas valdīja Java aptuveni piecus gadsimtus līdz 10.\ngadsimtam.\n\nTemplis tika izmantots kā budistu templis no tā uzcelšanas līdz laikam no\n10. līdz 15. gadsimtam, kad tas tika pamests. Kopš tā atkārtotas\natklāšanas 19. gadsimtā un atjaunošanas 20. gadsimtā tas ir atgriezts\nbudistu arheoloģiskajā vietā.\n\nPusdienas ar dejām.\nReogs jeb Rejogs  ir tradicionālāindonēziešu deja atklātā arēnā, kas kalpo\nkā tautas izklaide un satur dažus maģiskus elementus. Galvenais dejotājs\nir lauvasgalva ar pāva spalvu rotājumu, kuru pavada vairāki dejotāji\nmaskās un Kuda Lumpings. Reogs ir viena no Austrumjavas skatuves\nmākslām, kuru vēsturiski praktizēja Ponorogoir reģionā. Reogs ir viena no\nIndonēzijas kultūrām, kas joprojām ir ļoti spēcīga ar mistiskiem\nelementiem.\n\n2024. gada 3. decembrī Reog Ponorogo skatuves māksla ir iekļauta\nUNESCO nemateriālā kultūras mantojuma sarakstā.\n\n20:30 Ierašanās lidostā.\n23:50 lidojums uz Jayapura.\nNakts lidmašīnā.\n\n9. Feb\nPirm\n\nJAYAPURA - WAMENA\nDžajapura ( agrāk Hollandia ) ir Indonēzijas Papua provinces\ngalvaspilsēta un lielākā pilsēta .\n\nP,V\n\nBaliem\nPilamo\nhotel.\n\n10:00 Uzreiz nākamais lidojums uz Vamenu (Wamena).\n11:00 Ierašanās Vamenas lidostā, transfērs uz viesnīcu.\nAtsvaidzināšanās, iekārtošanās.\n13:00 Napua kalna apmeklējums, no kura paveras brīnišķīgs skatsu uz\nBaliem ieleju, Sinakma piekārto tiltu.\nPusdienas Sinabung Jaya restorānā.\nPēc pusdienām Suroba ciemata apmeklējums, tradicionālā tirgus\napmeklējums. Tikšanās ar iezemiešiem.\nVakariņas Sinabung Jaya restorānā un nakts viesnīcā.\n\nVamena , pazīstama arī kā Vamenas apgabals, ir liela pilsēta Indonēzijas\nRietumu Jaungvinejas reģionā . Tā ir lielākā pilsēta Papua augstienes\n\n\f10.Feb\nOtrd\n\nprovincē , kas atrodas Baliemas ielejā. Iedzīvotāju skaits 2023. gada vidū\nbija 66 080.  Vamena ir lauku apvidus pilsētas centrs, kurā atrodas Papua\naugstienes lielākā iedzīvotāju koncentrācija, un vairāk nekā 300 000\ncilvēku dzīvo Baliem ielejā un apkārtējos rajonos. Šie cilvēki pieder pie\nvairākām radniecīgām etniskām grupām, no kurām ievērojamākās ir Dani,\nLani un Yali .\n\nPilsētā atrodas arī futbola komanda Persiwa Wamena , kas līdz 2010.\ngadu sākumam spēlēja Indonēzijas Superlīgā .\n\nKas attiecas uz ārpasauli, tad Baliem ielejas atklāšanu , kur atrodas\nVamena, un negaidītu tās lielo lauksaimniecībā dzīvojošo iedzīvotāju\nklātbūtni izdarīja tikai 1938.gada 21.jūnijā Ričards Arčbolds. Savā trešajā\nzooloģiskajā ekspedīcijā uz Jaungvineju viņš lidodams uz dienvidiem no\nHolandes (tagad Džajapuras ieleja) to atklāja. Tā kā tas bija gandrīz\npilnībā norobežots no ārpasaules, Otrā pasaules kara laikā šo teritoriju\nnecieta cīņās par Jaungvinejas kontroli . Pašu pilsētu 1956. gadā dibināja\nholandieši un tā ir viena no pēdējām pilsētām, kas dibināta viņu pārvaldes\nlaikā Rietumu Jaungvinejā. Kopš tā laika ieleja ir pakāpeniski atvērta\nierobežotam tūrisma apjomam.\n\nWAMENA - JIWIKA (cūkas svētki & dejas) - WAMENA\n9:00 pēc brokastīm dodamies 30 minūšu braucienā uz Jiwika, kas atrodas\nuz ziemeļiem no Baliem ielejas. Šī vieta ir slavena ar savu 250 gadus\nveco mūmiju - Jiwika.\n10 minūšu pastaiga līdz Anemoigi ciematam, kur būs iespēja novērot Dani\nMock cīņas un cūku bēru svētkus. Būs iespēja novērot kā Dani iegūst\ntradicionālā veidā uguni, nokauj cūku ar bultu un loku, pagatavo to\nkarstots akmeņos ar dārzeņiem un saldajiem kartupeļiem kūpošā zemes\nbedrē.\nPusdienu kastīte tiks iedota un pēcpusdienā atgriešanās Baliem Pilamo\nviesnīcā.\n\nDani dzīvo plaši atdalītos ciematos, kuros ir 50 vai mazāk cilvēku. Apaļie,\nsalmu jumti ir iekārtoti ovālā dizainā. Katrs sastāv no vīriešu mājas,\nsieviešu mājas, ēdiena gatavošanas mājas un cūku novietnēm, kurām ir\ngalvenā loma Dani dzīvē. Vīrieši nevalkā neko, izņemot ķirbi (koteka) virs\nsava dzimumlocekļa. Ķirbī tiek glabāta arī tabaka un vērtslietas. Sievietes\ntradicionāli valkā tikai īsus svārkus un austu somu, lai aizsegtu muguru.\n\nDani galvenā nodarbošanās iir dārzu kopšana, 70 saldo kartupeļu šķirņu\nkultivēšana, kas ir viņu pamatēdiens, ko papildina daži citi dārzeņi, zaļumi\nun banāni, ja tādi ir pieejami. Cūkas gaļa ir vienīgais olbaltumvielu avots,\nkas spēlē galveno lomu Dani kultūrā, nosakot bagātību. Cūkas tiek\nupurētas tikai svinīgos gadījumos, taču tas notiek pietiekami bieži, lai\nnodrošinātu, ka vismaz reizi divās nedēļās tiek apēsts nedaudz gaļas.\nMedības ir neparastas, jo medījamo dzīvnieku ir tik maz.\n\nB,P,V  Baliem\nPilamo\nhotel.\n\n\fInstrumenti un ieroči ir izgatavoti no vietējiem resursiem: koka, akmens,\nkaula, vīnogulājiem, saknēm un bambusa. Ciematos vispār nav\nmodernizācijas  – ne elektrības, ne tualetes, ne mēbeļu.\n\nVīrieši biež degunos ievieto cūku ilkņus. Nozīmīgām ceremonijām daņi\nzīmē rakstus uz ķermeņa ar cūku taukiem, sodrējiem, māliem un dubļiem.\nGan vīrieši, gan sievietes rotā sevi ar spalvām, gliemežvākiem, ziediem\nun lapām.\n\nIzspēles cīņas un cūku mielasts ir svarīgi rituāli, kas saistīti ar tādiem\nnozīmīgiem notikumiem kā laulības un nāves gadījumi.\n\nWAMENA – KURIMA – WAMENA\n9:00 Pēc brokastīm 35 minūšu brauciens uz Sogokmo ciematu, kas\natrodas uz dienvidiem no Baliem ielejas.\n10:00 Pārgājiens cauri Dani saldo kartupelu dārziem, baudām skaistos\nskatu. Pēc 4-5 stundu pārgājiena, mēs nokļusim Asotipo ciematā,\nnokļūšana ciematā ir pa piekārtajiem tiltiņiem pāri Baliem upei. Tālāk ceļu\nturpinām uz Kurima reģionu.\nPārgājiena laikā mēs satiksim vienējos iedzīvotājus, kuriem sejās ir\ndraudzīgi smaidi, bet mugurā tradicionālais apģērbs.\nPēc piknika pusdienām, dosimies atpakaļ uz Sogokmo ciemu, tad uz\nWamenu, kur mūs gaidīs vakariņas Sinabung Jaya restorānā.\nPakts Baliem Pilamo viesnīcā.\n\n11. Feb\nTešd\n\nB,P,V  Baliem\nPilamo\nhotel.\n\n12. Feb\nCet\n\nWAMENA - JAYAPURA\nPēc brokastīm, trasnfērs uz Vamenas lidostu.\n07:30 izlidošana uz Džajapuru.\n08:30 ielidošana Džajapura.\n\nB,P,V  Swiss Bel\n\nhotel\n\nDžajapura tulkojumā no saskripta nozīmē “uzvaras pilsēt”, taču Sukarno\nlaikā to sauca par Sukarnopuru. Nīderlandes kolonizācijas laikā pilsētu\nsauca par Holandi, kas bija Nīderlandes Jaungvijas galvaspilsēta, kas\nšobrīd arī turpina būt par Papua galvaspilsētu.\n\nNeliela pilsētas apskate.\n\n13. Feb\nPiekt\n\nJAYAPURA - SORONG - RAJA AMPAT\n07:30 ierašanās lidostā.\n09:00 lidojums uz Sorong.\n11:00 ielidošana Sorong.\nSoronga ir vārti uz Indonēzijas Radža Ampata salām, bagātām koraļļu rifu\nsalām apgabalā, kas tiek uzskatīts par pasaules koraļļu rifu bioloģiskās\ndaudzveidības sirdi. Tā ir arī loģistikas centrs Indonēzijas plaukstošajai\naustrumu naftas un gāzes robežai. Soronga piedzīvoja strauju izaugsmi\ndesmit gadu laikā no 2010. gada, un tiek prognozēta turpmāka izaugsme,\njo Soronga tiks savienota ar ceļiem ar citām pierobežas pilsētām Papua\nBērdgalvas pussalā . Oficiālā iedzīvotāju skaita aplēse 2023. gada vidū\nbija 294 978.  Sorongas pilsētas piepilsētas zonā ir tropiskie lietus meži un\n\nB,P,V  HOME\n\nSTAY\n\n\fmangrovju meži, kas arvien vairāk kļūst par ekotūrisma objektiem, īpaši\nputnu vai savvaļas dzīvnieku vērošanai.\n\n11:30 izbraukšana uz piestātni.\n14:00 prāmis uz Wasai.\n16:00 iebraukšana Wasai, kas ir Raja Ampat galvasspilseta.\nIerodoties Wasai dosimies uz Arborek ciematu.\nRegīstrācija viesu namā, atpūta ar snorlingu, lai paskatītos uz manta\nrajām.\nVakariņās grillētas zivis.\nNakts tīrā, bet vienkāršā viesu namā.\n\nRadža Ampat  jeb Četri karaļi ir arhipelāgs , kas atrodas netālu no Bird's\nHead pussalas ziemeļrietumu gala ( Jaungvinejas salā ), Papua\ndienvidrietumu provincē. Tas ietver vairāk nekā 1500 mazu salu, sēkļus un\nsēkļus ap četrām galvenajām Misool, Salavati, Batantas un Waigeo\nsalām, kā arī mazāko Kofiau salu .\n\nRaja Ampat ir daļa no Koraļļu trīsstūra — Dienvidaustrumāzijas jūru\napgabala, kurā ir bagātākā jūras bioloģiskā daudzveidība uz zemes. Šajos\nūdeņos plaukst tūkstošiem jūras iemītnieku, sākot no vissīkākajiem\npigmeju jūras zirgiem līdz majestātiskajiem vaļveidīgajiem un vaļhaizivīm.\n\nSalas ir daļa no Vogelkop-Aru zemienes lietus mežu ekoreģiona. Lietus\nmeži, kas klāj salas, ir dabiska dzīves vide daudzām putnu, zīdītāju,\nrāpuļu un kukaiņu sugām. Divas paradīzes putnu sugas: sarkanais\nparadīzes putns ( Paradisaea rubra ) un Vilsona paradīzes putns (\nDiphyllodes respublica ), ir endēmiskas Waigeo, Gam un Batanta salās.\n\n14. Feb\nSest\n\nARBOREK - PYANEMO - YENBUBA - ARBOREK\nPēc brokastīm dosimies ar motorlaivu uz skaisto korāļu rifu  Pyanemo.\n\nB,P,V  HOME\n\nSTAY\n\nPusdienas.\nPēc pusdienā  turpnāsim ar snorklingu Yanbuna.\nVēlā pēcpusdienā atgriezīsimies Arborek.\nVakariņas un nakts viesu namā.\n\nSaskaņā ar Starptautisko dabas aizsargorganizācijas viedokli, apsekojot\nšo reģionu, nonāca pie secinājuma, ka jūras dzīves daudzveidība Raja\nAmpat apgabalā ir vislielākā uz pasaules. Tā daudzveidība ir ievērojami\nlielāka nekā jebkurā citā valstī, sākot no Indonēzijas, Malaizijas, Filipīnām,\nPapua-Jaungvinejas, Zālamana salām un Austrumtimoras.\n\nBrīva diena atpūtai.\n\nB,P,V  HOME\n\nSTAY\n\nARBOREK - WAISAI - SORONG\nAtpakaļ ceļā uz Waisai apmeklēsim kādu ciematu, lai iepazītos ar vietējo\niezemiešu dzīves veidu. Pusdienas.\n\nB,P,V  SWISS\n\nBEL\nHOTEL\n\n15.FEB\nSvēt\n\n16. Feb\nSvēt\n\n\fB,P\n\nBoss hotel\n\nB\n\nBoss hotel\n\n14:00 Izbraukšana uz Sorong ar prāmi.\n16:00 Ierašanās Sorongā.\nVakariņas viesnīcā.\n\n17. Feb\nOtr\n\nSORONG - MAKASSAR - SINGAPURA\n08:00 Brokastis\n09:00 Neliela ekskursija Sorong ar pusdienām.\n13:00 Atbraukšana uz lidostu.\n14:55 Lidojums uz Makassar.\n16:00 Ielidošana.\n18:25 Lidojums no Makassar uz Singapūru\n21:20 Ielidošana Singapūrā. Transfērs uz viesnīcu.\n\n18. Feb\nTreš\n\nUnikāla valsts, kas  no gruvešiem ir izaugusi līdz Dienvidaustrumu Āzijas\ntirdzniecības un transporta centram.  Singapūra ieguva savu neatkarību\nno Malaizijas tikai pirms 50 gadiem, kad šeit valdīja nabadzība, bezdarbs\nun arī civilie nemieri. Tagad Singapūra ir 4. lielākais finanšu centrs\npasaulē un Pasaules Banka ir nosaukusi Singapūru kā vislabāko valsti\nbiznesam. Singapūras vārds asociējas galvenokārt ar biznesa lielvalsti,\ntaču tā spēj piedāvāt ne tikai debesskrāpjus un dārgus restorānus, bet arī\npludmales, izklaides kā bērniem, tā pieaugušajiem, un skaistu dabu. Šeit\nir ļoti droši pat nakts vidū, visur ir ideāla kārtība, tiek ievēroti visi likumi.\n\n10:00 Pilsētas apskate.\nIepazīšanās ar dažādiem kvartāliem: ķīniešu, indiešu, musulmaņu, britu\nimpērijas celtās ēkas.\n14:00 Pusdienas slavenajā food court.\n15:30 Marina Bay dārzi, kas, aizņemot 101 hektāru plašu teritoriju, ir vieni\nno skaistākajiem iekštelpu dārziem pasaulē. Šajos dārzos ir savākti augi\nno visiem kontinentiem, izņemot Antarktīdu. Ir arī divas iekštelpu\nsiltumnīcas “Ziedu kupols” un “Mākoņu mežs”, kur atsevišķās zonās ir\nizstādīti dažādi augi, tiem radot dažādus klimatiskos apstākļus. Tas ļauj\napmeklētājiem parādīt aptuveni 220 tūkstošus pārsteidzošu augu no visas\npasaules.\n“Ziedu kupols” ir mūžīgā pavasara pasaule, kurā pastāvīgi zied unikāli\naugi. Šis ziemas dārzs imitē aukstu un sausu Vidusjūras klimatu, kā arī\nDienvidāfrikas un Kalifornijas mēreno subtropu klimatu. Šī ir lielākā\nsiltumnīca pasaulē, kas 2015. gadā ir iekļauta Ginesa rekordu grāmatā.\nZiedu kompozīcijas tiek mainītas atbilstoši svētkiem un gadalaiki.\nParka galvenā atrakcija ir fantastiskie superkoki, kuru augstums ir no 25\nlīdz 50 metriem un kuros ir integrēti saules paneļi. Katrs superkoks ir\nvertikāls botāniskais dārzs, kurā aug tropiski ziedi un papardes.\nSuperkokiem ir ne tikai oriģināls izskats, bet tie arī uzkrāj saules enerģiju,\nvāc lietus ūdeni un aizkavē vēju.\nBrīnišķīga pastaiga pa gaisa tiltiem, kas ir uzstādīti starp superkokiem 22\nmetru augstumā. No gaisa tiltiem paveras skats uz Botānisko dārzu,\npilsētu un slaveno viesnīcu “Marina Bay Sands”. Pēcpusdienā superkoku\nvainagi rada ēnu visam dārzam, bet vakarā tie atdzīvojas fantastiskā\ngaismas un mūzikas šovā.\n\n\f(ieejas biļetes dārzos nav iekļautas, bet iepriekš pasūtāmas, pašā teritorijā\nieejas biļetes nav vajadzīgas).\nVēlu vakarā atgriešanās viesnīcā.\n\n19. Feb\nCet\n\nSINGAPURA- ISTANBUL\nBrīvs rīts, kad var pastaigāt pa slaveno Orchard ielu, kur atrodas lieli\ntirdzniecības centri. Vai aizbraukt uz vienu no labākiem zoodārziem, kur\nvar redzēt ne tikai Āzijas, Austrālijas dzīvniekus, bet pat zvērus no\nziemeļpola.\n18:30 Izbraukšana uz lidostu\n19:00 Ierašanās lidostā\n23:25 Izlidošana uz Istanbulu TK55\n\nB\n\n20. Feb\nSest\n\n06:15 Ielidošana istambulā\n08:30 Izlidošana uz Rīgu TK1757\n10:50 Ierašanās Rīgā\n\n            Raja Ampat - Papua                                     Snorkelēšana Raja Ampat\n\nPROGRAMMAS CENA: 3530 EUR\nPIEMAKSA PAR VIENVIETĪGO NUMURU: 450 EUR\n\nCENĀ IEKĻAUTS:\n\n-  Maltites pēc programmas;\n-  Vietējie pārlidojumi\n-  Dzīvošana norādītajas viesnīcās vai līdzīgās.\n-\n\nIeejas biļetes pēc programmas, izņemot tempļus Prambanana un Borobudur un\nSingapūras dārzus;\n-  Norādītās maltītes;\n-  Grupas vadītājs no Latvijas.\n\nPROGRAMMĀ NAV IEKĻAUTS\n\n-  Turkish airlines pārlidojums: Rīga - Džakarta un Singapūra - Rīga - papildus samaksa\n\n-\n\npar avio 800EUR no cilvēka.\nIndonēzijas vīzas, kuras vēlams noformēt pirms izlidošanas. Vīzas noformēšanas maksa\n70EUR no cilvēka. Vīzas noformēšanai vajadzīga ieskanēta pases kopija un digitāls foto.\n\n\n",
                    "additional_information": "No additional provided"
                },
                "response_mode": "streaming"
            },
            "gzip": true,
            "json": false,
            "method": "POST",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 100000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "Bad request - please check your parameters",
    "httpCode": "400",
    "messages": [
        "400 - \"{\\\"code\\\":\\\"invalid_param\\\",\\\"message\\\":\\\"days is required in input form\\\",\\\"status\\\":400}\\n\""
    ],
    "timestamp": 1769014090069,
    "description": "days is required in input form",
    "functionality": "regular"
}
633
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "87bd86c7-732b-483c-a062-6ef70b1d5807",
        "name": "HTTP Request",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -912,
            1440
        ],
        "parameters": {
            "url": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "method": "POST",
            "options": {
                "timeout": 100000
            },
            "jsonBody": "={\n  \"inputs\":{\n  \"processed_doc\": {{ $('Excursion Request Body').item.json.processed_doc.toJsonString() }},\n  \"section\": \"{{ $('Excursion Request Body').item.json.section }}\",\n\"additional_information\": {{ $('Excursion Request Body').item.json.additional_info.toJsonString() }}\n  \n},\n  \"response_mode\": \"streaming\",\n  \"user\": \"n8n\"\n}",
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "none",
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: Bad request - please check your parameters\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "body": {
                "user": "n8n",
                "inputs": {
                    "section": "all",
                    "processed_doc": "**Program for Group March (AZA TOURS)**\n\n|  |  |  |  |\n| --- | --- | --- | --- |\n| **DAY** | **TOUR DESCRIPTION** | **HOTEL** | **MEAL** |\n| 20.06.26 | Transfer in airport to hotel. Check-in. | Ibis KLIA |  |\n| 21.06.26 | 0430 Depart early to the airport.  0625 Flight to Brunei by AK272  0855 Estimated arrival at Brunei.  0930 Depart to full-day city tour.  10:45 Next stop will be Royal Regalia Museum - which houses the regalia of the Sultan and the royalty.  11:30 Next is visit to Omar Ali Saifuddien Mosque – seen as the most magnificent mosque in Asia, it is named after the father of the present ruler.  12:30 Lunch at local restaurant.  13:30 After lunch, continue to the majestic of Jame’ Asr Hassanil Bolkiah Mosque.  14:30 Continuing visit Kampong Air– Known as the “Venice of the East”, it is one of the largest water village in Southeast Asia.  15:30 We will drive to Nurul Iman Palace. Stop by for photo - the official residence of The Sultan of Brunei and was included in the Guinness Book of Record as the world’s largest living residence of a head of state.  16:30 Gadong night market.  19:00 Transfer back to Radisson hotel. | Radisson | L |\n| 22.06.26 | 07:30 After breakfast, depart to Mulu Airport. \\*Take 2 hours and a half journey\\*  10:30 Arrive at airport.  11:40 Flight to Mulu by MH3630  12:10 Arrive at Mulu. Arrive check-in.  14:30 Starting tour the deer and lang caves. Enjoy the sheer size of this limestone passage, an ancient riverbed, and see the force of water carving the scalloped walls  17:00 Get the moments to see the Bat Exodus.  17:30 Back to lodge. | Mulu Marriot | B |\n| 23.06.26 | 0845 Depart to tour Clear water & Winds - Clearwater Cave is one of Asia's longest caves, measuring around 107 km, and has a subterranean river that is navigable by boat along the Melinau River.  1130 Depart back to lodge.  1400 Start the tour with short boat ride up the Melinau, a  10-20 minute walk through the rainforest and a climb up  the steps to the cave entrance brings you to the start of a  1,5km underground adventure. The tour begins by torch  light encouraging you to ‘discover’ for yourself. Cave fauna  is easily seen at the beginning of this trip: twinkling spider  eyes stare back at you, blue Racer snakes sit waiting to  catch a bat flying by, white crabs feed blindly in the shallow  pools of water and the long antennae of cave crickets pick  up your movements as you pass by.  As the cave becomes larger some of the best formations in  Mulu are presented to you via stunning lighting. The wide plank walk path allows you to look around you and thoroughly enjoy this amazing experience.  This cave is highly regarded by scientists as it contains huge volumes of pre-historic sediments, including a volcanic ash layer.  1600 Depart to resort. End tour. | Mulu Marriot | B |\n| 24.06.26 | 0700 Canopy Walk. Walk in the lush tree tops with tranquil river views below and compare the vegetation of riverine forest floor to the understory, the treetops and nearby limestone cliffs. A unique opportunity to get closer to the rainforest ‘web of life’.  0900 Depart back to lodge.  1030 Depart to airport.  1210 Flight to BKI by MH3252  1305 Estimated arrive and transfer to hotel. | Nexus | B |\n| 25.06.26 | FREE & EASY | Nexus | B |\n| 26.06.26 | FREE & EASY | Nexus | B |\n| 27.06.26 | 0500 Depart to airport  0625 Flight to Sandakan by AK6492  0710 Estimated arrival at Sandakan  0800 Depart to Sandakan Jetty.  1000 Depart to island located only 40 kilometers from North Sandakan, you will have the opportunity to see the main nesting areas of the Green Turtles and Hawksbill Turtles.  Upon arrival, lunch will be served for you to feast!  1200 Check in to your basic but clean accommodation. The rest of the day you are free to stretch out by the beach or jump right into the sea for a snorkel round the nearby reefs.  1900 Dinner will be served.  After dinner, a Park Ranger will inform you on the right time to encounter turtle laying their eggs along the beach. Get the chance to witness the collecting of eggs from the nestling site and into a safe hatchery and watch baby turtles scrambling out into the open sea upon their release on shore. An adorable sight not to be missed! | Turtle Island | B, L, D |\n| 28.06.26 | After breakfast, 0700 hrs, return to Sandakan. Proceed to the world famous Sepilok Orang Utan Rehabilitation Centre situated in the Kabili-Sepilok Forest Reserve. Watch the video show documentary rehabilitation at orphaned Orang Utan before taking a boardwalk through the lowland rainforest to view the feeding platform. Witness the feeding of Orang Utan at 1000hrs. Then Bornean Sun Bear Conservation Centre provides a rare chance to see sun bears in natural forest enclosures.  1100 Depart to Kinabatangan River known as one of the world’s richest ecosystems and the largest concentration of wildlife in South East Asian region until arrive to Sukau. Check-in. Enjoy high-tea before to evening cruise.  At 1600hrs join a river cruise in search of Proboscis Monkeys, birds and other wildlife along the river bank.  1900 Having dinner. | Bilit Adventure Lodge | B,L,D |\n| 29.06.26 | 0600 Having the morning cruise. Wake up early and join your guide for a dawn river cruise in search of this area’s outstanding wildlife  0700 Having breakfast.  0830 Check-out and depart to Sandakan airport. \/ If enough time then can stop for Proboscis Monkey feeding time at Labuk Bay.  1410 Flight to Kul by MH2711  1710 Estimated arrival at Kuala Lumpur.  1800 Transfer in airport to Ibis hotel. End services | Ibis | B |\n| 30.06.26 | 09:15-10:45 Guest by theirown to Petronas Twin Tower.  11:00 Guide will meet-up them at Petronas and continue the city tour.  11:15 depart to Brickfields: short tasting tour  11:30 depart to Thean Hou Temple  12:10 Going for lunch.  12:30 – 13:30 Lunch - time \\* by their own\\*  14:00 We will begin our exploration of the historic city of Kuala Lumpur at the confluence of two rivers, where tin miners first landed back in 1857. We'll travel back to the time when Malaya was under British rule and explore the historic buildings around Independence Square. We'll learn where the first letters were sent from, where the British played cricket, whether the city clock resembles Big Ben, as well as the city's first mosque. We will set aside some time for souvenir shopping at the Art Deco-style Central Market. And also explore the Chinatown district, which 150 years ago was a centre for tapioca flour production and is now experiencing a renaissance, rediscovered by the younger generation and artists.  17:00 Arriving to hotel. | Ibis | B |\n| 01.07.26 | 11:30 Rest at hotel by the time of check in.  12:00 Depart to Batu Caves.  13:20-14:20 Royal Selangor factory  16:00 Putrajaya Tour and dinner  19:30 Transfer back to airport. | Ibis | B |\n\n**Included:**\n\n- Transfers, tours with English guide and meals per program (10 Breakfasts, 3 Lunches & 2 Dinners)\n\n- Accommodation in Mulu Marriot, Bilit Adventure Lodge, Turtle Island, Nexus, Ibis KLIA & Ibis City\n\n- Entrance fee\n\n- Flight local (KUL-BRUNEI, MIRI-MULU, MULU-BKI, BKI-SDK, SDK-KUL)\n\n**Excluded:**\n\n* Petronas Twin Towers Tickets\n* Tourism Tax\n* Not included Tour from Mulu Marriot **(30EUR additional per pax)**\n",
                    "additional_information": "No additional provided"
                },
                "response_mode": "streaming"
            },
            "gzip": true,
            "json": false,
            "method": "POST",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 100000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "Bad request - please check your parameters",
    "httpCode": "400",
    "messages": [
        "400 - \"{\\\"code\\\":\\\"invalid_param\\\",\\\"message\\\":\\\"days is required in input form\\\",\\\"status\\\":400}\\n\""
    ],
    "timestamp": 1769014071609,
    "description": "days is required in input form",
    "functionality": "regular"
}
632
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "87bd86c7-732b-483c-a062-6ef70b1d5807",
        "name": "HTTP Request",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -912,
            1440
        ],
        "parameters": {
            "url": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "method": "POST",
            "options": {
                "timeout": 100000
            },
            "jsonBody": "={\n  \"inputs\":{\n  \"processed_doc\": {{ $('Excursion Request Body').item.json.processed_doc.toJsonString() }},\n  \"section\": \"{{ $('Excursion Request Body').item.json.section }}\"\n  \n},\n  \"response_mode\": \"streaming\",\n  \"user\": \"n8n\"\n}",
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "none",
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: Bad request - please check your parameters\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "body": {
                "user": "n8n",
                "inputs": {
                    "section": "all",
                    "processed_doc": "UZBEKISTĀNA 11d\/10n\nNo 19.06.-30.06.2026.\n\nVidusāzijas sirds, senā Zīda ceļa krustpunkts, Persijas zinātnes centrs.  Bagāts kultūras un\nspožs islama arhitektūras mantojums ar unikālu dabu, fantastisku viesmīlību un gardiem\nēdieniem un vīnu.  Piedzīvojus ceļojumā pa tūkstots un vienas nakts pasaku valstību.\n\nDATUMS\n\n19.06.2026.\nPiektdiena\n\nUzbekistānas virtve\n\n    Uzbekistānas kultūra\n\nPROGRAMMA\n\nVIESNĪCA\n\nĒD.\n\nRīga - Iatambula\n19:50 Izlidošana no Rīgas ar TK1776.\n23:10 Ielidošana Istambulā.\nTransfērs uz viesnīcu.\n\nStambula - tilts starp Austrumiiem un Rietumiem, kas\natrodas divos kontinentos - Eiropā un Āzijā, ko sadala\nBosfora šaurums- trīs lielu imperiju galvasspilsēta: Romas,\nBizantijas un Osmaņu, tāpēc tā ir bagāta ar arhitektūru,\nvēsturi un kultūru.\n\n20.06.2026.\nSestdiena\n\nIstambula - Samarkanda\n7:30 Brokastis\n8:00 Pilsētas ekskursija\n\nB\n\nSāksim ekskursiju uz Lielo tirgu (Grand Bazaar), kas ir\nviens no lielākajiem un vecākajiem tirgiem pasaulē. 4000\nveikaliņu, kur var nopirkt sākot ar paklājem un biedzot līdz\nrotām.\n\nAua Sofija (Hagia Sophia) mošeja. Unikālais Bizantijas un\nOsmaņu arhitektūras apvienojums, kas ir bijusi kā baznīca,\ntad mošeja, tad muzejs un takal mošeja.\n\nSultāna Ajmeda mošeja (Zilā mošeja), kas ir slavena ar\nsavām zilajām flīzēm uz sienām. Tā atrodas tieši pretī Aya\n\n\f21.06.2026.\nSvētdiena\n\nSofijai.\n\n13:00 Pusdienas uz kuģīša pa Bosfora šaurumu. Iepazīstiet\npilsētas vēsturisko un kultūras bagātību ar mobilo audio\ngidu, atsvaidzinieties ar bezalkoholiskajiem dzērieniem un\nuzkodām.\nAtklāj vēsturiskās ēkas un slavenos rajonus abās\nStambulas pusēs, baudot brīnišķīgos skatus no ūdens.\nEkskursijas laikā mobilajā audio gida ierakstos uzzināsi\ninformāciju par Stambulas vēsturi, kultūru un tradīcijām.\nNobaudiet uzkodas un dzert bezalkoholiskos dzērienus, tēju\nvai kafiju (ja izvēlēta šī opcija), braucot garām pilsētas\napskates vietām. Ekskursijas laikā redzēsiet slavenas\nvietas, piemēram, Dolmabahçe pili, Oratory mošeja,\nBosfora tiltu, Rumeli cietoksni, Fatih Sultan Mehmed tiltu,\nAnadolu cietoksni, Küçüksu pili, Beylerbeyi pili un Jaunavu\ntorni.\n17:00 Izbraušana uz lidostu\n19:00 Ierašanās lidostā\n21:50 Izlidošana uz Samarkandu ar TK0372.\n\nSamarkanda - vienna no senākajām apdzīvotajām pilsētām\npasaulē - tās vēsture stiepjas līdz 2700 gadu senā pagātnē\n- viens no svarīgākiem Zīda ceļa centriem.\n04:10 ierašanās Samarkandā - zīda ceļa sirds\nTransfērs uz lidostu, atpūta.\n09:30 Brokastis.\n10:30 Samarkandas pilsētas apskate.\n\n-  Rgistānas laukums (15-17.gds.)\n-  Gur - Emira mauzolejs (15.gds) - Tamerlāna un\n\nTimurīdu dinastijas apbedījuma vieta. Atpazīstama\npēc majestātiskā tirkīza kupola.\n\n-  Ulubkekas observatorija (15.gds) - pirmā austrumos\nar 30 metru sekstantu precīziem astronomiskiem\nmērījumiem, ir saglabājusies sekstanta tranšeja.\n-  Hodžas Doniera mauzolejs - svētceļojuma vieta\n\nmusulmaņiem, kristiešiem un ebrejiem.\n\n-  Konigila amtnieku ciemats  - etnogrāfisks kompless\nnetālu no Samarkandas, kur saglabātas senās zīda\npapīra izgatavošanas tehnoloģijas.\n\n-  Hazrati Khizr mošeja ir 19.gds apskates objekts, kas\nir arī Uzbekistānas preidenta atdusas vieta - Islama\nKarimova.\n\n-  Shah-i-Zinda mauzeleju komplekss no 14-15.gds,\n\nkads ir skaistākais objekts no Timurida arhitektūras.\n-  Bibi Khanym - grandiozā 14.gds celtne, kuru uzcēle\n\nTamerians par godu savai sievai.\n\n22.06.2026.\nPirmdiena\n\nSamarkanda - Bukhra - pilsēta kā dzīvais muzejs.\nViena no senākām un svētākajām pilsētām Uzbekistānā un\n\nB\n\n\fvisā Vidusāzijā. Vairāk nekā 2000 gadus tā ir bijusi kultūras,\nizglītības un tirdzniecības centrs. Bukhāra ir slavena ar\nsavām madrasām, mošejām un tirgiem un tiek uzskatīta par\nislāma intelektuālo sirdi reģionā.\n\n10:00 Brokastis\n10:30 Izbraukšana uz staciju.\n11:55 Brauciens uz Bukharu ar vilcienu\n14:15 ierašanās Bukharā.\nPusdienas un vecpilsētas pilsētas apskate.\n\n-  Lyabi Khauz komplekss - Bukharas centrs ar dīķi\n\nar skaistiem, seniem kokiem.\n\n-  Poi Kalon kompekss, kas ir pilsētas simbols:\n\nmošeja no 12-16.gds.ar 46 metrus augsto mineretu,\nmilzīga mošeja ar 288 kolonām plašu iekšpagalmu.\n\n-  Tirdzniecības kupoli Toqi - senie zīda ceļa tirgi -\nšodien mākslinieku, zeltkaļu, audēju un amatnieku\nmājvieta. Šeit var arī samainīt naudu.\n\nBukhara\n\n-  Chor Minor - neparasta četru torņu medrese.\n-  Sitora Mohi Khosa pils\n-  Samanīdu mauzolejs no 9.gadsimta - viena no\n\nsenākām būvēm Bukhārā.\n\n-  Ark cietoksnis - karaliskā pils Buhārass emīru\nrezidence līdz 1920.gadam (iekļauj tronistabu,\ncietumu, mošeju, munīcijas noliktavu)\n\n-  Bolo Hauz mošeja - netālu no Ark cietokšņa -\n\nskaista koka kolonnām rotāta mošeja, atspoguļo\ntradicionālo kokgriezumu mākslu.\n\nChoyxona - Zīda ceļa tējas nams. Senas tējas dzeršanas\ntradīcijas ar dažādām uzkodām - vieta, kur atvilkt elpu,\nsociālizēties un drusku atpūsties.\n\nIzbraukšana uz Aidar ezeru cauri Nuratas kalniem. Tas ir\nliels, skaists sāļūdens ezers, kas atrodas Kizilkum\ntuksnesī. To bieži sauc par “zilās jūras brīnumu tuksnesī.\nEzera apkārtnē iespējams ieeraudzīt anilopes, stepju\nlapsas, putnus (flamingus, gārņus, ērgļus). Ezerā ir sitls un\nmaigs ūdens, tā ir iemīļota vieta arī makšķerniekiem, jo\nezerā mīt karpas, zandarti, līdikas utt.\n\nNakšņošana jurtās (apaļas formas teltis), kurus uzbeki\nizmantoja līdzīgi kā kazahi, kirgīzi un turkmēņi, jo vadīja\ndaļēji klejotāju dzīves veidu.\nVakars ar tradicionālām uzbeku vakariņām, tautas mūziku\npie ugunskura.\nJūnijā temperatīra var sasniegt pat 40 grādus.\n\n23.06.2026.\nOtrdiena\n\n24.06.2026.\nTrešdiena\n\n25.06.2026.  Vakarā atgriešanās Bukharā.\n\n\fCeturtdiena\n\n26.06.2026.\nPiektdiena\n\nBukhara - Khiva - pasaka no “Tūkstoš un vienas nakts”.\nKhiva - sena tuksneša pilsēta valsts Rietumos, kas slavena\nar savu viduslaiku arhitektūru, nocietināto vecpilsētu un\npasaku atmosfēru. Tas ir UNESCO mantojuma objekts un\nviens no glavenajiem Zīda ceļa pieturas punktiem. Pilsēta\napdzīvota jau pirms 6.gds.p.m.ē.\n07:01 brauciens uz khiva ar vilcienu\n12:54 ierašanās Khiva\n\n-\n\nIchan Kala - vecpilsēta. Unesco mantojuma objekts.\nPilnībā nocietināta viduslaiku pilsēta ar mūriem, 4\nvārtiem un desmitiem senu ēku. Šeit arī atrodas vis\ngalvenie vēsturiskie pieminekļi.\n\n-  Juma mošeja - īpaša ar 200 senām koka\n\nkolonnām. Gaisma krīt caur atverēm jumtā -\nmaģiski.\n\n-  Kalta Minor minarets - slavenais “nepabeigtais\nmniarets”, plats, īss, bet krāšņi rotāts ar zilām un\nzaļām flīzēm.\n\n-  Hana pils - biijusī Khivas hanu rezidence. No torņa\n\npveras skaists skats uz Ichan Kala.\n\n-  Pakhlavan Mahmud mauzelejs - svēta vieta, kas\nveltīta Khivas varonim un dzejniekam. Iekšpusē ir\ngrezns zils kupols un svētnīca.\n\n-  Tosh Hovli pils - “Akmens nams”. Grezna pils ar\n\nharemu, krāšņiem pagalmiem, mozaīkām un flīzēm.\n\n27.06.2026.\nSestdiena\n\nKhiva\nBrīva diena, lai apmeklētu amatnieku darbnīcas, iegādātos\nsuvenīrus. Izbaudīsim tējas dzeršanu kādā no pagalmiem.\nVakarā visi kopā dosimies uz folkloras šovus ar mūziku un\ndejā pēc dervišu tradīcijām.\n\n28.06.2026.\nSvētdiena\n\nKhiva -Taškenta\n7:00 Izbraukšana uz Urgenč lidostu (40 min brauciens)\n09:20 Izlidošana uz Taškentu HY52\n10:40 Ielidošana Taškentā - mūsdienu un padomju laiku\nsajaukums.\nEkskursijā apmeklēsim:\n\n-  bazāru (Chorsu tirgus)- pilsētas dzīvā sirds ar\n\nkošām garšvielām, svaigiem konditorijas\nizstrādājumiem, žāvētiem augļiem un austrumu\ngardumi. Viesmīlīgie pārdevēji jums dos nogaršot\nvisu, ko sirds kāro…….\n Taškentas metro, kur katra stacija ir kā mākslas\ndarbs.\n\n-\n\n-  Khast imam komplekss - vēsturiskais islāma\n\ncentrs Taškentā. Šeit glabājas pasaulē senākais\nKorāna eksemplars - Osmaņa korāns no\n\n\f29.06.2026.\nPirmdiena\n\n7.gadsimta.\n\n-  Kukeldash medrese no 16.gadsimta. Viena no\n\nvecākajām un lielākajām pilsētā, atrodas netālu no\ntirgus.\n\n-  Uzvaras laukums un Atmodas laukums - lielās\n\nbrīvības atmiņas piemiņa vieta.\n\n-  Amir Temir laukums - Taškentas sirds - plašs\n\nlaukums ar Amir Timura pieminekli zirgam mugurā.\n\n9:00 Brauciens netālu no Taškentas (apmēra 120km),\nbaudīsim gleznainos kalnu skatus, tīru gaisu un gardu\nēdienu. Pametīsim Taškentu un dosimies uz kalniem –\nRietumu Tjanšāna piekājē. Beldersajas ielejā brauksim ar\ntrosu pacēlāju, kas pacels mūs 2095 m augstumā.\nNolaidušies atpakaļ, turpināsim ceļu uz Čarvak ezera pusi.\nPa ceļam apstāsimies Čimgan slēpošanas kūrortā.\nIebraucot pie Čarvak, apstāsimies uz augsta krauja, lai\nbaudītu skaistos ezera skatus uz Tjanšāna kalnu fona.\nPaēdīsim pusdienas vietējā čaihanā ar izcili garšīgu uzbeku\nvirtuvi, pēc pusdienām dosimies kājām pārgājienā.\nApskatīsim stāvo klinti, uz kuras redzami klinšu zīmējumi\n(petroglifi) – senatnes mākslinieku darbi. Pēc tam\napmeklēsim lielo činaru (platanus) – koku, kas ir vecāks par\n800 gadiem. Pastaigu noslēgsim pie kalnu ūdenskrituma,\nkas bagātinās mūsu ceļojumu. Pēc visiem piedzīvojumiem\nvakarā atgriezīsimies Taškentā.\n18:00 Atgriešanās Taškentā.\n\n30.06.2026.\nOtrdiena\n\n07:00 Izbraukšana uz lidostu.\n09:35 Izlidošana ar TK0369 uz Istambulu.\n12:55 Ielidošana Istambulā (tranzīts 2:55)\n15:50 Izlidošana uz Rīgu ar TK1775\n18:55 Ielidošana Rīgā.\n\nKhiva\n\n     Istambula\n\n                Jurtas\n\n\fProgrmmā iekļauts:\n\nProgrammā nav iekļauts:\n\n\n"
                },
                "response_mode": "streaming"
            },
            "gzip": true,
            "json": false,
            "method": "POST",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 100000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "Bad request - please check your parameters",
    "httpCode": "400",
    "messages": [
        "400 - \"{\\\"code\\\":\\\"invalid_param\\\",\\\"message\\\":\\\"additional_information is required in input form\\\",\\\"status\\\":400}\\n\""
    ],
    "timestamp": 1769013759967,
    "description": "additional_information is required in input form",
    "functionality": "regular"
}
631
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "87bd86c7-732b-483c-a062-6ef70b1d5807",
        "name": "HTTP Request",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -912,
            1440
        ],
        "parameters": {
            "url": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "method": "POST",
            "options": {
                "timeout": 100000
            },
            "jsonBody": "={\n  \"inputs\":{\n  \"processed_doc\": {{ $('Excursion Request Body').item.json.processed_doc.toJsonString() }},\n  \"section\": \"{{ $('Excursion Request Body').item.json.section }}\"\n  \n},\n  \"response_mode\": \"streaming\",\n  \"user\": \"n8n\"\n}",
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "none",
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: Bad request - please check your parameters\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "body": {
                "user": "n8n",
                "inputs": {
                    "section": "all",
                    "processed_doc": "EKSOTISKĀKĀS INDONĒZIJAS SALAS: JAVA, SULAVESI, PAPUA\nJAUNGVINEJA\nAR CIVILIZĀCIJAS ATTĪSTĪBAS KULMINĀCIJU SINGAPŪRĀ\n\n                 Borobudur templis  - Java                      Wamenas iezemieši - Papua\n\nDATUMS\n\n04. Feb\nTrešd\n\n5. Feb\nCeturt\n\nPROGRAMMA\n\nĒDIN  VIESNĪCA\n\nRIGA - ISTANBUL\n18:55 Izlidošana no Rīgas ar TK1776\n23:15 Ielidošana Stambulā\n\nISTANBUL - JAKARTA\n02:45 Izlidošana no Stambulas\n18:00 Ielidošana Džakartā\nVakariņas vietējā restorānā, kur turpinām svinēt Raimondas dzimšanas\ndienu, trasfērs uz viesnīcu.\n\nV\n\nFM 7\nHotel\nJakarta 4*\n\nIndonēzijas galvaspilsēta, kas atrodas Javas salas ZR piekrastē.\nNīderlandiešu kolonija no 17.gads sākuma, šodien ir moderna metropole\nar 11 miljoniem iedzīvotāju, kā lielā skudrupūznī dzīvē mutuļo.\n\nVēsturisks kultūru sajaukums – javiešu, malajiešu, ķīniešu, arābu, indiešu\nun eiropiešu – ir ietekmējis tās arhitektūru, valodu un virtuvi. Vecpilsētā\nKota Tua atrodas Nīderlandes koloniālās celtnes, Glodoka (Džakartas\nķīniešu kvartāls) un vecā Sunda Kelapas osta, kurā piestāj tradicionālās\nkoka laivas.\n\n6. Feb\nPIekt\n\n10:00 Džakartas pilsētas apskate.\nVēsturisks kultūru sajaukums – javiešu, malajiešu, ķīniešu, arābu, indiešu\nun eiropiešu – ir ietekmējis tās arhitektūru, valodu un virtuvi. Vecpilsētā\nKota Tua atrodas Nīderlandes koloniālās celtnes, Glodoka (Džakartas\nķīniešu kvartāls) un vecā Sunda Kelapas osta, kurā piestāj tradicionālās\nkoka laivas.\n18:00 Atgriešanās viesnīcā.\n\nB,P,V  FM 7\nHotel\nJakarta 4*\n\n7. Feb\nSest\n\nJAKARTA - JOYAKARTA\n8:00 ierašanās lidostā.\n\nB,P,V  Kimaya\n\n\f10:00 izdidošana uz  Jogyakarta\n11:10 ielidošana un Karalisās pils un ūdens pils Taman sari (dārzs)\napmeklējums.\n\nHyatt\nRegency\n\nJogjakarta ir  īpašā reģiona galvaspilsēta Indonēzijā, Javas salas\ndienvidu-centrālajā daļā . Jogjakarta ir vienīgā Indonēzijas karaliskā\npilsēta, kurā joprojām valda monarhija , un tā tiek uzskatīta par nozīmīgu\njavas klasiskās tēlotājmākslas un kultūras centru , piemēram, baletu,\nbatikas tekstilizstrādājumiem, drāmu, literatūru , mūziku , dzeju ,\nsudrabkaļu, vizuālo mākslu un wayang leļļu teātri.  Jogjakarta ir slavena\nkā Indonēzijas izglītības centrs , un tajā dzīvo liels studentu skaits un\ndesmitiem skolu un universitāšu, tostarp Gadjah Mada University , valsts\nlielākā augstākās izglītības institūts un viena no prestižākajām.\n\nJogjakarta ir Jogjakartas Sultanāta galvaspilsēta un kalpoja kā Indonēzijas\ngalvaspilsēta no 1946. līdz 1948. gadam Indonēzijas nacionālās\nrevolūcijas laikā, un Gedung Agung bija prezidenta birojs. Viens no\nJogjakartas dienvidaustrumu rajoniem Kotā bija Mataramas sultanāta\ngalvaspilsēta no 1587. līdz 1613. Gadam.\n\nPils ir Jogjakartas valdošā sultāna un viņa ģimenes mītne . Komplekss ir\nJavas kultūras centrs , un tajā ir muzejs, kurā apskatāmi karaliski artefakti.\n\nTaman sari dārzs tika uzcelts sultāna Hamengku Buvono I (HB I)\nvaldīšanas laikā 1758.–1765.\/9. Sākotnēji parka, kas tika saukts par \"\nSmaržīgo dārzu \", platība bija vairāk nekā 10 hektāri ar aptuveni 57 ēkām\nēku, peldbaseinu, piekaramo tiltu, ūdens kanālu un mākslīgo ezeru ar\nmākslīgām salām un zemūdens tuneļiem veidā\n\nPēc pusdienām 30 minūšu brauciens uz Prabanan templi (ieejas biļete\njāpēerk uz vietas - 27EUR no cilvēka).\n\nPrambanana ir 9. gadsimta hinduistu tempļu komplekss Javas īpašajā\nJogjakartas reģionā, dienvidos veltīts Dievam . Radītājs ( Brahma ),\nSaglabātājs ( Višnu ) un Iznīcinātājs ( Šiva ). Tempļa komplekss atrodas\naptuveni 17 kilometrus  uz ziemeļaustrumiem no Jogjakartas pilsētas uz\nrobežas starp Centrāljavas un Jogjakartas provincē.\n\nTempļa komplekss, kas iekļauts UNESCO Pasaules mantojuma sarakstā ,\nir lielākā hinduistu tempļa vieta Indonēzijā un otra lielākā\nDienvidaustrumāzijā pēc Ankorvatas. To raksturo tā augstā un smailā\narhitektūra, kas raksturīga hinduistu arhitektūrai, un 47 metrus augsta\ncentrālā ēka lielā atsevišķu tempļu kompleksā.  Prambananas tempļu\nkompleksi sākotnēji sastāvēja no 240 tempļu struktūrām, kas pārstāvēja\nsenās Javas hinduistu mākslas un arhitektūras varenību, kā arī tiek\nuzskatītas par Indonēzijas klasiskā perioda šedevru.\n\nSuvenīru veikali.\n\n\f8. Feb\nSvētd\n\nJohjakarta - Borobudur templis - Unesco mantojuma sarakstā iekļauts\n1970.gadā.\n8:30 Izbraukšana uz Borobudur templi (ieejas biļete jāpērk uz vietas -\ncena 45 EUR).\nApmēram pusotras stundas braucienā atrodas šis slavenais budistu\ntemplis, kasir viens no lielākajiem budistu pieminekļiem pasaulē, un tas\ntika uzcelts mūsu ēras 8. un 9. gadsimtā Syailendra dinastijas valdīšanas\nlaikā. Piemineklis atrodas Kedu ielejā.\n\nB,P,V  Nakts\nlidojot\n\nTemplis ir jāuzskata arī par izcilu Syailendra dinastijas dinastijas\npieminekli, kas valdīja Java aptuveni piecus gadsimtus līdz 10.\ngadsimtam.\n\nTemplis tika izmantots kā budistu templis no tā uzcelšanas līdz laikam no\n10. līdz 15. gadsimtam, kad tas tika pamests. Kopš tā atkārtotas\natklāšanas 19. gadsimtā un atjaunošanas 20. gadsimtā tas ir atgriezts\nbudistu arheoloģiskajā vietā.\n\nPusdienas ar dejām.\nReogs jeb Rejogs  ir tradicionālāindonēziešu deja atklātā arēnā, kas kalpo\nkā tautas izklaide un satur dažus maģiskus elementus. Galvenais dejotājs\nir lauvasgalva ar pāva spalvu rotājumu, kuru pavada vairāki dejotāji\nmaskās un Kuda Lumpings. Reogs ir viena no Austrumjavas skatuves\nmākslām, kuru vēsturiski praktizēja Ponorogoir reģionā. Reogs ir viena no\nIndonēzijas kultūrām, kas joprojām ir ļoti spēcīga ar mistiskiem\nelementiem.\n\n2024. gada 3. decembrī Reog Ponorogo skatuves māksla ir iekļauta\nUNESCO nemateriālā kultūras mantojuma sarakstā.\n\n20:30 Ierašanās lidostā.\n23:50 lidojums uz Jayapura.\nNakts lidmašīnā.\n\n9. Feb\nPirm\n\nJAYAPURA - WAMENA\nDžajapura ( agrāk Hollandia ) ir Indonēzijas Papua provinces\ngalvaspilsēta un lielākā pilsēta .\n\nP,V\n\nBaliem\nPilamo\nhotel.\n\n10:00 Uzreiz nākamais lidojums uz Vamenu (Wamena).\n11:00 Ierašanās Vamenas lidostā, transfērs uz viesnīcu.\nAtsvaidzināšanās, iekārtošanās.\n13:00 Napua kalna apmeklējums, no kura paveras brīnišķīgs skatsu uz\nBaliem ieleju, Sinakma piekārto tiltu.\nPusdienas Sinabung Jaya restorānā.\nPēc pusdienām Suroba ciemata apmeklējums, tradicionālā tirgus\napmeklējums. Tikšanās ar iezemiešiem.\nVakariņas Sinabung Jaya restorānā un nakts viesnīcā.\n\nVamena , pazīstama arī kā Vamenas apgabals, ir liela pilsēta Indonēzijas\nRietumu Jaungvinejas reģionā . Tā ir lielākā pilsēta Papua augstienes\n\n\f10.Feb\nOtrd\n\nprovincē , kas atrodas Baliemas ielejā. Iedzīvotāju skaits 2023. gada vidū\nbija 66 080.  Vamena ir lauku apvidus pilsētas centrs, kurā atrodas Papua\naugstienes lielākā iedzīvotāju koncentrācija, un vairāk nekā 300 000\ncilvēku dzīvo Baliem ielejā un apkārtējos rajonos. Šie cilvēki pieder pie\nvairākām radniecīgām etniskām grupām, no kurām ievērojamākās ir Dani,\nLani un Yali .\n\nPilsētā atrodas arī futbola komanda Persiwa Wamena , kas līdz 2010.\ngadu sākumam spēlēja Indonēzijas Superlīgā .\n\nKas attiecas uz ārpasauli, tad Baliem ielejas atklāšanu , kur atrodas\nVamena, un negaidītu tās lielo lauksaimniecībā dzīvojošo iedzīvotāju\nklātbūtni izdarīja tikai 1938.gada 21.jūnijā Ričards Arčbolds. Savā trešajā\nzooloģiskajā ekspedīcijā uz Jaungvineju viņš lidodams uz dienvidiem no\nHolandes (tagad Džajapuras ieleja) to atklāja. Tā kā tas bija gandrīz\npilnībā norobežots no ārpasaules, Otrā pasaules kara laikā šo teritoriju\nnecieta cīņās par Jaungvinejas kontroli . Pašu pilsētu 1956. gadā dibināja\nholandieši un tā ir viena no pēdējām pilsētām, kas dibināta viņu pārvaldes\nlaikā Rietumu Jaungvinejā. Kopš tā laika ieleja ir pakāpeniski atvērta\nierobežotam tūrisma apjomam.\n\nWAMENA - JIWIKA (cūkas svētki & dejas) - WAMENA\n9:00 pēc brokastīm dodamies 30 minūšu braucienā uz Jiwika, kas atrodas\nuz ziemeļiem no Baliem ielejas. Šī vieta ir slavena ar savu 250 gadus\nveco mūmiju - Jiwika.\n10 minūšu pastaiga līdz Anemoigi ciematam, kur būs iespēja novērot Dani\nMock cīņas un cūku bēru svētkus. Būs iespēja novērot kā Dani iegūst\ntradicionālā veidā uguni, nokauj cūku ar bultu un loku, pagatavo to\nkarstots akmeņos ar dārzeņiem un saldajiem kartupeļiem kūpošā zemes\nbedrē.\nPusdienu kastīte tiks iedota un pēcpusdienā atgriešanās Baliem Pilamo\nviesnīcā.\n\nDani dzīvo plaši atdalītos ciematos, kuros ir 50 vai mazāk cilvēku. Apaļie,\nsalmu jumti ir iekārtoti ovālā dizainā. Katrs sastāv no vīriešu mājas,\nsieviešu mājas, ēdiena gatavošanas mājas un cūku novietnēm, kurām ir\ngalvenā loma Dani dzīvē. Vīrieši nevalkā neko, izņemot ķirbi (koteka) virs\nsava dzimumlocekļa. Ķirbī tiek glabāta arī tabaka un vērtslietas. Sievietes\ntradicionāli valkā tikai īsus svārkus un austu somu, lai aizsegtu muguru.\n\nDani galvenā nodarbošanās iir dārzu kopšana, 70 saldo kartupeļu šķirņu\nkultivēšana, kas ir viņu pamatēdiens, ko papildina daži citi dārzeņi, zaļumi\nun banāni, ja tādi ir pieejami. Cūkas gaļa ir vienīgais olbaltumvielu avots,\nkas spēlē galveno lomu Dani kultūrā, nosakot bagātību. Cūkas tiek\nupurētas tikai svinīgos gadījumos, taču tas notiek pietiekami bieži, lai\nnodrošinātu, ka vismaz reizi divās nedēļās tiek apēsts nedaudz gaļas.\nMedības ir neparastas, jo medījamo dzīvnieku ir tik maz.\n\nB,P,V  Baliem\nPilamo\nhotel.\n\n\fInstrumenti un ieroči ir izgatavoti no vietējiem resursiem: koka, akmens,\nkaula, vīnogulājiem, saknēm un bambusa. Ciematos vispār nav\nmodernizācijas  – ne elektrības, ne tualetes, ne mēbeļu.\n\nVīrieši biež degunos ievieto cūku ilkņus. Nozīmīgām ceremonijām daņi\nzīmē rakstus uz ķermeņa ar cūku taukiem, sodrējiem, māliem un dubļiem.\nGan vīrieši, gan sievietes rotā sevi ar spalvām, gliemežvākiem, ziediem\nun lapām.\n\nIzspēles cīņas un cūku mielasts ir svarīgi rituāli, kas saistīti ar tādiem\nnozīmīgiem notikumiem kā laulības un nāves gadījumi.\n\nWAMENA – KURIMA – WAMENA\n9:00 Pēc brokastīm 35 minūšu brauciens uz Sogokmo ciematu, kas\natrodas uz dienvidiem no Baliem ielejas.\n10:00 Pārgājiens cauri Dani saldo kartupelu dārziem, baudām skaistos\nskatu. Pēc 4-5 stundu pārgājiena, mēs nokļusim Asotipo ciematā,\nnokļūšana ciematā ir pa piekārtajiem tiltiņiem pāri Baliem upei. Tālāk ceļu\nturpinām uz Kurima reģionu.\nPārgājiena laikā mēs satiksim vienējos iedzīvotājus, kuriem sejās ir\ndraudzīgi smaidi, bet mugurā tradicionālais apģērbs.\nPēc piknika pusdienām, dosimies atpakaļ uz Sogokmo ciemu, tad uz\nWamenu, kur mūs gaidīs vakariņas Sinabung Jaya restorānā.\nPakts Baliem Pilamo viesnīcā.\n\n11. Feb\nTešd\n\nB,P,V  Baliem\nPilamo\nhotel.\n\n12. Feb\nCet\n\nWAMENA - JAYAPURA\nPēc brokastīm, trasnfērs uz Vamenas lidostu.\n07:30 izlidošana uz Džajapuru.\n08:30 ielidošana Džajapura.\n\nB,P,V  Swiss Bel\n\nhotel\n\nDžajapura tulkojumā no saskripta nozīmē “uzvaras pilsēt”, taču Sukarno\nlaikā to sauca par Sukarnopuru. Nīderlandes kolonizācijas laikā pilsētu\nsauca par Holandi, kas bija Nīderlandes Jaungvijas galvaspilsēta, kas\nšobrīd arī turpina būt par Papua galvaspilsētu.\n\nNeliela pilsētas apskate.\n\n13. Feb\nPiekt\n\nJAYAPURA - SORONG - RAJA AMPAT\n07:30 ierašanās lidostā.\n09:00 lidojums uz Sorong.\n11:00 ielidošana Sorong.\nSoronga ir vārti uz Indonēzijas Radža Ampata salām, bagātām koraļļu rifu\nsalām apgabalā, kas tiek uzskatīts par pasaules koraļļu rifu bioloģiskās\ndaudzveidības sirdi. Tā ir arī loģistikas centrs Indonēzijas plaukstošajai\naustrumu naftas un gāzes robežai. Soronga piedzīvoja strauju izaugsmi\ndesmit gadu laikā no 2010. gada, un tiek prognozēta turpmāka izaugsme,\njo Soronga tiks savienota ar ceļiem ar citām pierobežas pilsētām Papua\nBērdgalvas pussalā . Oficiālā iedzīvotāju skaita aplēse 2023. gada vidū\nbija 294 978.  Sorongas pilsētas piepilsētas zonā ir tropiskie lietus meži un\n\nB,P,V  HOME\n\nSTAY\n\n\fmangrovju meži, kas arvien vairāk kļūst par ekotūrisma objektiem, īpaši\nputnu vai savvaļas dzīvnieku vērošanai.\n\n11:30 izbraukšana uz piestātni.\n14:00 prāmis uz Wasai.\n16:00 iebraukšana Wasai, kas ir Raja Ampat galvasspilseta.\nIerodoties Wasai dosimies uz Arborek ciematu.\nRegīstrācija viesu namā, atpūta ar snorlingu, lai paskatītos uz manta\nrajām.\nVakariņās grillētas zivis.\nNakts tīrā, bet vienkāršā viesu namā.\n\nRadža Ampat  jeb Četri karaļi ir arhipelāgs , kas atrodas netālu no Bird's\nHead pussalas ziemeļrietumu gala ( Jaungvinejas salā ), Papua\ndienvidrietumu provincē. Tas ietver vairāk nekā 1500 mazu salu, sēkļus un\nsēkļus ap četrām galvenajām Misool, Salavati, Batantas un Waigeo\nsalām, kā arī mazāko Kofiau salu .\n\nRaja Ampat ir daļa no Koraļļu trīsstūra — Dienvidaustrumāzijas jūru\napgabala, kurā ir bagātākā jūras bioloģiskā daudzveidība uz zemes. Šajos\nūdeņos plaukst tūkstošiem jūras iemītnieku, sākot no vissīkākajiem\npigmeju jūras zirgiem līdz majestātiskajiem vaļveidīgajiem un vaļhaizivīm.\n\nSalas ir daļa no Vogelkop-Aru zemienes lietus mežu ekoreģiona. Lietus\nmeži, kas klāj salas, ir dabiska dzīves vide daudzām putnu, zīdītāju,\nrāpuļu un kukaiņu sugām. Divas paradīzes putnu sugas: sarkanais\nparadīzes putns ( Paradisaea rubra ) un Vilsona paradīzes putns (\nDiphyllodes respublica ), ir endēmiskas Waigeo, Gam un Batanta salās.\n\n14. Feb\nSest\n\nARBOREK - PYANEMO - YENBUBA - ARBOREK\nPēc brokastīm dosimies ar motorlaivu uz skaisto korāļu rifu  Pyanemo.\n\nB,P,V  HOME\n\nSTAY\n\nPusdienas.\nPēc pusdienā  turpnāsim ar snorklingu Yanbuna.\nVēlā pēcpusdienā atgriezīsimies Arborek.\nVakariņas un nakts viesu namā.\n\nSaskaņā ar Starptautisko dabas aizsargorganizācijas viedokli, apsekojot\nšo reģionu, nonāca pie secinājuma, ka jūras dzīves daudzveidība Raja\nAmpat apgabalā ir vislielākā uz pasaules. Tā daudzveidība ir ievērojami\nlielāka nekā jebkurā citā valstī, sākot no Indonēzijas, Malaizijas, Filipīnām,\nPapua-Jaungvinejas, Zālamana salām un Austrumtimoras.\n\nBrīva diena atpūtai.\n\nB,P,V  HOME\n\nSTAY\n\nARBOREK - WAISAI - SORONG\nAtpakaļ ceļā uz Waisai apmeklēsim kādu ciematu, lai iepazītos ar vietējo\niezemiešu dzīves veidu. Pusdienas.\n\nB,P,V  SWISS\n\nBEL\nHOTEL\n\n15.FEB\nSvēt\n\n16. Feb\nSvēt\n\n\fB,P\n\nBoss hotel\n\nB\n\nBoss hotel\n\n14:00 Izbraukšana uz Sorong ar prāmi.\n16:00 Ierašanās Sorongā.\nVakariņas viesnīcā.\n\n17. Feb\nOtr\n\nSORONG - MAKASSAR - SINGAPURA\n08:00 Brokastis\n09:00 Neliela ekskursija Sorong ar pusdienām.\n13:00 Atbraukšana uz lidostu.\n14:55 Lidojums uz Makassar.\n16:00 Ielidošana.\n18:25 Lidojums no Makassar uz Singapūru\n21:20 Ielidošana Singapūrā. Transfērs uz viesnīcu.\n\n18. Feb\nTreš\n\nUnikāla valsts, kas  no gruvešiem ir izaugusi līdz Dienvidaustrumu Āzijas\ntirdzniecības un transporta centram.  Singapūra ieguva savu neatkarību\nno Malaizijas tikai pirms 50 gadiem, kad šeit valdīja nabadzība, bezdarbs\nun arī civilie nemieri. Tagad Singapūra ir 4. lielākais finanšu centrs\npasaulē un Pasaules Banka ir nosaukusi Singapūru kā vislabāko valsti\nbiznesam. Singapūras vārds asociējas galvenokārt ar biznesa lielvalsti,\ntaču tā spēj piedāvāt ne tikai debesskrāpjus un dārgus restorānus, bet arī\npludmales, izklaides kā bērniem, tā pieaugušajiem, un skaistu dabu. Šeit\nir ļoti droši pat nakts vidū, visur ir ideāla kārtība, tiek ievēroti visi likumi.\n\n10:00 Pilsētas apskate.\nIepazīšanās ar dažādiem kvartāliem: ķīniešu, indiešu, musulmaņu, britu\nimpērijas celtās ēkas.\n14:00 Pusdienas slavenajā food court.\n15:30 Marina Bay dārzi, kas, aizņemot 101 hektāru plašu teritoriju, ir vieni\nno skaistākajiem iekštelpu dārziem pasaulē. Šajos dārzos ir savākti augi\nno visiem kontinentiem, izņemot Antarktīdu. Ir arī divas iekštelpu\nsiltumnīcas “Ziedu kupols” un “Mākoņu mežs”, kur atsevišķās zonās ir\nizstādīti dažādi augi, tiem radot dažādus klimatiskos apstākļus. Tas ļauj\napmeklētājiem parādīt aptuveni 220 tūkstošus pārsteidzošu augu no visas\npasaules.\n“Ziedu kupols” ir mūžīgā pavasara pasaule, kurā pastāvīgi zied unikāli\naugi. Šis ziemas dārzs imitē aukstu un sausu Vidusjūras klimatu, kā arī\nDienvidāfrikas un Kalifornijas mēreno subtropu klimatu. Šī ir lielākā\nsiltumnīca pasaulē, kas 2015. gadā ir iekļauta Ginesa rekordu grāmatā.\nZiedu kompozīcijas tiek mainītas atbilstoši svētkiem un gadalaiki.\nParka galvenā atrakcija ir fantastiskie superkoki, kuru augstums ir no 25\nlīdz 50 metriem un kuros ir integrēti saules paneļi. Katrs superkoks ir\nvertikāls botāniskais dārzs, kurā aug tropiski ziedi un papardes.\nSuperkokiem ir ne tikai oriģināls izskats, bet tie arī uzkrāj saules enerģiju,\nvāc lietus ūdeni un aizkavē vēju.\nBrīnišķīga pastaiga pa gaisa tiltiem, kas ir uzstādīti starp superkokiem 22\nmetru augstumā. No gaisa tiltiem paveras skats uz Botānisko dārzu,\npilsētu un slaveno viesnīcu “Marina Bay Sands”. Pēcpusdienā superkoku\nvainagi rada ēnu visam dārzam, bet vakarā tie atdzīvojas fantastiskā\ngaismas un mūzikas šovā.\n\n\f(ieejas biļetes dārzos nav iekļautas, bet iepriekš pasūtāmas, pašā teritorijā\nieejas biļetes nav vajadzīgas).\nVēlu vakarā atgriešanās viesnīcā.\n\n19. Feb\nCet\n\nSINGAPURA- ISTANBUL\nBrīvs rīts, kad var pastaigāt pa slaveno Orchard ielu, kur atrodas lieli\ntirdzniecības centri. Vai aizbraukt uz vienu no labākiem zoodārziem, kur\nvar redzēt ne tikai Āzijas, Austrālijas dzīvniekus, bet pat zvērus no\nziemeļpola.\n18:30 Izbraukšana uz lidostu\n19:00 Ierašanās lidostā\n23:25 Izlidošana uz Istanbulu TK55\n\nB\n\n20. Feb\nSest\n\n06:15 Ielidošana istambulā\n08:30 Izlidošana uz Rīgu TK1757\n10:50 Ierašanās Rīgā\n\n            Raja Ampat - Papua                                     Snorkelēšana Raja Ampat\n\nPROGRAMMAS CENA: 3530 EUR\nPIEMAKSA PAR VIENVIETĪGO NUMURU: 450 EUR\n\nCENĀ IEKĻAUTS:\n\n-  Maltites pēc programmas;\n-  Vietējie pārlidojumi\n-  Dzīvošana norādītajas viesnīcās vai līdzīgās.\n-\n\nIeejas biļetes pēc programmas, izņemot tempļus Prambanana un Borobudur un\nSingapūras dārzus;\n-  Norādītās maltītes;\n-  Grupas vadītājs no Latvijas.\n\nPROGRAMMĀ NAV IEKĻAUTS\n\n-  Turkish airlines pārlidojums: Rīga - Džakarta un Singapūra - Rīga - papildus samaksa\n\n-\n\npar avio 800EUR no cilvēka.\nIndonēzijas vīzas, kuras vēlams noformēt pirms izlidošanas. Vīzas noformēšanas maksa\n70EUR no cilvēka. Vīzas noformēšanai vajadzīga ieskanēta pases kopija un digitāls foto.\n\n\n"
                },
                "response_mode": "streaming"
            },
            "gzip": true,
            "json": false,
            "method": "POST",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 100000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "Bad request - please check your parameters",
    "httpCode": "400",
    "messages": [
        "400 - \"{\\\"code\\\":\\\"invalid_param\\\",\\\"message\\\":\\\"additional_information is required in input form\\\",\\\"status\\\":400}\\n\""
    ],
    "timestamp": 1769013711532,
    "description": "additional_information is required in input form",
    "functionality": "regular"
}
630
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "87bd86c7-732b-483c-a062-6ef70b1d5807",
        "name": "HTTP Request",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -912,
            1440
        ],
        "parameters": {
            "url": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "method": "POST",
            "options": {
                "timeout": 100000
            },
            "jsonBody": "={\n  \"inputs\":{\n  \"processed_doc\": {{ $('Excursion Request Body').item.json.processed_doc.toJsonString() }},\n  \"section\": \"{{ $('Excursion Request Body').item.json.section }}\"\n  \n},\n  \"response_mode\": \"streaming\",\n  \"user\": \"n8n\"\n}",
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "none",
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: Bad request - please check your parameters\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "body": {
                "user": "n8n",
                "inputs": {
                    "section": "all",
                    "processed_doc": "**Program for Group March (AZA TOURS)**\n\n|  |  |  |  |\n| --- | --- | --- | --- |\n| **DAY** | **TOUR DESCRIPTION** | **HOTEL** | **MEAL** |\n| 20.06.26 | Transfer in airport to hotel. Check-in. | Ibis KLIA |  |\n| 21.06.26 | 0430 Depart early to the airport.  0625 Flight to Brunei by AK272  0855 Estimated arrival at Brunei.  0930 Depart to full-day city tour.  10:45 Next stop will be Royal Regalia Museum - which houses the regalia of the Sultan and the royalty.  11:30 Next is visit to Omar Ali Saifuddien Mosque – seen as the most magnificent mosque in Asia, it is named after the father of the present ruler.  12:30 Lunch at local restaurant.  13:30 After lunch, continue to the majestic of Jame’ Asr Hassanil Bolkiah Mosque.  14:30 Continuing visit Kampong Air– Known as the “Venice of the East”, it is one of the largest water village in Southeast Asia.  15:30 We will drive to Nurul Iman Palace. Stop by for photo - the official residence of The Sultan of Brunei and was included in the Guinness Book of Record as the world’s largest living residence of a head of state.  16:30 Gadong night market.  19:00 Transfer back to Radisson hotel. | Radisson | L |\n| 22.06.26 | 07:30 After breakfast, depart to Mulu Airport. \\*Take 2 hours and a half journey\\*  10:30 Arrive at airport.  11:40 Flight to Mulu by MH3630  12:10 Arrive at Mulu. Arrive check-in.  14:30 Starting tour the deer and lang caves. Enjoy the sheer size of this limestone passage, an ancient riverbed, and see the force of water carving the scalloped walls  17:00 Get the moments to see the Bat Exodus.  17:30 Back to lodge. | Mulu Marriot | B |\n| 23.06.26 | 0845 Depart to tour Clear water & Winds - Clearwater Cave is one of Asia's longest caves, measuring around 107 km, and has a subterranean river that is navigable by boat along the Melinau River.  1130 Depart back to lodge.  1400 Start the tour with short boat ride up the Melinau, a  10-20 minute walk through the rainforest and a climb up  the steps to the cave entrance brings you to the start of a  1,5km underground adventure. The tour begins by torch  light encouraging you to ‘discover’ for yourself. Cave fauna  is easily seen at the beginning of this trip: twinkling spider  eyes stare back at you, blue Racer snakes sit waiting to  catch a bat flying by, white crabs feed blindly in the shallow  pools of water and the long antennae of cave crickets pick  up your movements as you pass by.  As the cave becomes larger some of the best formations in  Mulu are presented to you via stunning lighting. The wide plank walk path allows you to look around you and thoroughly enjoy this amazing experience.  This cave is highly regarded by scientists as it contains huge volumes of pre-historic sediments, including a volcanic ash layer.  1600 Depart to resort. End tour. | Mulu Marriot | B |\n| 24.06.26 | 0700 Canopy Walk. Walk in the lush tree tops with tranquil river views below and compare the vegetation of riverine forest floor to the understory, the treetops and nearby limestone cliffs. A unique opportunity to get closer to the rainforest ‘web of life’.  0900 Depart back to lodge.  1030 Depart to airport.  1210 Flight to BKI by MH3252  1305 Estimated arrive and transfer to hotel. | Nexus | B |\n| 25.06.26 | FREE & EASY | Nexus | B |\n| 26.06.26 | FREE & EASY | Nexus | B |\n| 27.06.26 | 0500 Depart to airport  0625 Flight to Sandakan by AK6492  0710 Estimated arrival at Sandakan  0800 Depart to Sandakan Jetty.  1000 Depart to island located only 40 kilometers from North Sandakan, you will have the opportunity to see the main nesting areas of the Green Turtles and Hawksbill Turtles.  Upon arrival, lunch will be served for you to feast!  1200 Check in to your basic but clean accommodation. The rest of the day you are free to stretch out by the beach or jump right into the sea for a snorkel round the nearby reefs.  1900 Dinner will be served.  After dinner, a Park Ranger will inform you on the right time to encounter turtle laying their eggs along the beach. Get the chance to witness the collecting of eggs from the nestling site and into a safe hatchery and watch baby turtles scrambling out into the open sea upon their release on shore. An adorable sight not to be missed! | Turtle Island | B, L, D |\n| 28.06.26 | After breakfast, 0700 hrs, return to Sandakan. Proceed to the world famous Sepilok Orang Utan Rehabilitation Centre situated in the Kabili-Sepilok Forest Reserve. Watch the video show documentary rehabilitation at orphaned Orang Utan before taking a boardwalk through the lowland rainforest to view the feeding platform. Witness the feeding of Orang Utan at 1000hrs. Then Bornean Sun Bear Conservation Centre provides a rare chance to see sun bears in natural forest enclosures.  1100 Depart to Kinabatangan River known as one of the world’s richest ecosystems and the largest concentration of wildlife in South East Asian region until arrive to Sukau. Check-in. Enjoy high-tea before to evening cruise.  At 1600hrs join a river cruise in search of Proboscis Monkeys, birds and other wildlife along the river bank.  1900 Having dinner. | Bilit Adventure Lodge | B,L,D |\n| 29.06.26 | 0600 Having the morning cruise. Wake up early and join your guide for a dawn river cruise in search of this area’s outstanding wildlife  0700 Having breakfast.  0830 Check-out and depart to Sandakan airport. \/ If enough time then can stop for Proboscis Monkey feeding time at Labuk Bay.  1410 Flight to Kul by MH2711  1710 Estimated arrival at Kuala Lumpur.  1800 Transfer in airport to Ibis hotel. End services | Ibis | B |\n| 30.06.26 | 09:15-10:45 Guest by theirown to Petronas Twin Tower.  11:00 Guide will meet-up them at Petronas and continue the city tour.  11:15 depart to Brickfields: short tasting tour  11:30 depart to Thean Hou Temple  12:10 Going for lunch.  12:30 – 13:30 Lunch - time \\* by their own\\*  14:00 We will begin our exploration of the historic city of Kuala Lumpur at the confluence of two rivers, where tin miners first landed back in 1857. We'll travel back to the time when Malaya was under British rule and explore the historic buildings around Independence Square. We'll learn where the first letters were sent from, where the British played cricket, whether the city clock resembles Big Ben, as well as the city's first mosque. We will set aside some time for souvenir shopping at the Art Deco-style Central Market. And also explore the Chinatown district, which 150 years ago was a centre for tapioca flour production and is now experiencing a renaissance, rediscovered by the younger generation and artists.  17:00 Arriving to hotel. | Ibis | B |\n| 01.07.26 | 11:30 Rest at hotel by the time of check in.  12:00 Depart to Batu Caves.  13:20-14:20 Royal Selangor factory  16:00 Putrajaya Tour and dinner  19:30 Transfer back to airport. | Ibis | B |\n\n**Included:**\n\n- Transfers, tours with English guide and meals per program (10 Breakfasts, 3 Lunches & 2 Dinners)\n\n- Accommodation in Mulu Marriot, Bilit Adventure Lodge, Turtle Island, Nexus, Ibis KLIA & Ibis City\n\n- Entrance fee\n\n- Flight local (KUL-BRUNEI, MIRI-MULU, MULU-BKI, BKI-SDK, SDK-KUL)\n\n**Excluded:**\n\n* Petronas Twin Towers Tickets\n* Tourism Tax\n* Not included Tour from Mulu Marriot **(30EUR additional per pax)**\n"
                },
                "response_mode": "streaming"
            },
            "gzip": true,
            "json": false,
            "method": "POST",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 100000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "Bad request - please check your parameters",
    "httpCode": "400",
    "messages": [
        "400 - \"{\\\"code\\\":\\\"invalid_param\\\",\\\"message\\\":\\\"additional_information is required in input form\\\",\\\"status\\\":400}\\n\""
    ],
    "timestamp": 1769013688783,
    "description": "additional_information is required in input form",
    "functionality": "regular"
}
629
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "87bd86c7-732b-483c-a062-6ef70b1d5807",
        "name": "HTTP Request",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -912,
            1440
        ],
        "parameters": {
            "url": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "method": "POST",
            "options": {
                "timeout": 100000
            },
            "jsonBody": "={\n  \"inputs\":{\n  \"processed_doc\": \"{{ $('Excursion Request Body').item.json.processed_doc.toJsonString() }}\",\n  \"section\": \"{{ $('Excursion Request Body').item.json.section }}\"\n  \n},\n  \"response_mode\": \"streaming\",\n  \"user\": \"n8n\"\n}",
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "none",
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: JSON parameter needs to be valid JSON\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:442:15)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:31)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:22)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:38\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "itemIndex": 0
    },
    "message": "JSON parameter needs to be valid JSON",
    "messages": [],
    "timestamp": 1769013580264,
    "functionality": "regular"
}
628
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "87bd86c7-732b-483c-a062-6ef70b1d5807",
        "name": "HTTP Request",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -912,
            1440
        ],
        "parameters": {
            "url": "https:\/\/api.dify.ai\/v1\/workflows\/run",
            "method": "POST",
            "options": {
                "timeout": 100000
            },
            "jsonBody": "={\n  \"inputs\":{\n  \"processed_doc\": \"{{ $('Excursion Request Body').item.json.processed_doc.toJsonString() }}\",\n  \"section\": \"{{ $('Excursion Request Body').item.json.section }}\"\n  \n},\n  \"response_mode\": \"streaming\",\n  \"user\": \"n8n\"\n}",
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "none",
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: JSON parameter needs to be valid JSON\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:442:15)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:31)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:22)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:38\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "itemIndex": 0
    },
    "message": "JSON parameter needs to be valid JSON",
    "messages": [],
    "timestamp": 1769013545075,
    "functionality": "regular"
}
626
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "58d6efe9-6133-4448-9c4f-ca814420cda9",
        "name": "HTTP Request1",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -496,
            1440
        ],
        "parameters": {
            "url": "=https:\/\/api.dify.ai\/v1\/workflows\/run\/{{ $json.workflow_run_id }}",
            "method": "GET",
            "options": [],
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "keypair",
            "authentication": "none",
            "bodyParameters": {
                "parameters": [
                    {
                        "name": "",
                        "value": ""
                    }
                ]
            },
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: The resource you are requesting could not be found\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run\/",
            "body": {
                "": ""
            },
            "gzip": true,
            "json": false,
            "method": "GET",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 300000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "The resource you are requesting could not be found",
    "httpCode": "404",
    "messages": [
        "404 - \"<!doctype html>\\n<html lang=en>\\n<title>404 Not Found<\/title>\\n<h1>Not Found<\/h1>\\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\\n<script defer src=\\\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\\\" integrity=\\\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\\\" data-cf-beacon='{\\\"version\\\":\\\"2024.11.0\\\",\\\"token\\\":\\\"ee206d1e4d424fb88d9c2fc428ed0634\\\",\\\"server_timing\\\":{\\\"name\\\":{\\\"cfCacheStatus\\\":true,\\\"cfEdge\\\":true,\\\"cfExtPri\\\":true,\\\"cfL4\\\":true,\\\"cfOrigin\\\":true,\\\"cfSpeedBrain\\\":true},\\\"location_startswith\\\":null}}' crossorigin=\\\"anonymous\\\"><\/script>\\n\""
    ],
    "timestamp": 1769012493905,
    "description": "<!doctype html>\n<html lang=en>\n<title>404 Not Found<\/title>\n<h1>Not Found<\/h1>\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\n<script defer src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon='{\"version\":\"2024.11.0\",\"token\":\"ee206d1e4d424fb88d9c2fc428ed0634\",\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}' crossorigin=\"anonymous\"><\/script>\n",
    "functionality": "regular"
}
624
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "58d6efe9-6133-4448-9c4f-ca814420cda9",
        "name": "HTTP Request1",
        "type": "n8n-nodes-base.httpRequest",
        "position": [
            -496,
            1440
        ],
        "parameters": {
            "url": "=https:\/\/api.dify.ai\/v1\/workflows\/run\/{{ $json.workflow_run_id }}",
            "method": "GET",
            "options": [],
            "sendBody": true,
            "sendQuery": false,
            "curlImport": "",
            "contentType": "json",
            "infoMessage": "",
            "sendHeaders": true,
            "specifyBody": "keypair",
            "authentication": "none",
            "bodyParameters": {
                "parameters": [
                    {
                        "name": "",
                        "value": ""
                    }
                ]
            },
            "specifyHeaders": "keypair",
            "headerParameters": {
                "parameters": [
                    {
                        "name": "Authorization",
                        "value": "Bearer app-wVrZlyCb9zP9rvAxZZphZJxq"
                    }
                ]
            },
            "provideSslCertificates": false,
            "preBuiltAgentsCalloutHttpRequest": ""
        },
        "typeVersion": 4.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: The resource you are requesting could not be found\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/HttpRequest\/V3\/HttpRequestV3.node.ts:859:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": {
        "request": {
            "uri": "https:\/\/api.dify.ai\/v1\/workflows\/run\/",
            "body": {
                "": ""
            },
            "gzip": true,
            "json": false,
            "method": "GET",
            "headers": {
                "accept": "application\/json,text\/html,application\/xhtml+xml,application\/xml,text\/*;q=0.9, image\/*;q=0.8, *\/*;q=0.7",
                "authorization": "**hidden**"
            },
            "timeout": 300000,
            "encoding": null,
            "useStream": true,
            "followRedirect": true,
            "followAllRedirects": true,
            "rejectUnauthorized": true,
            "resolveWithFullResponse": true
        },
        "itemIndex": 0
    },
    "message": "The resource you are requesting could not be found",
    "httpCode": "404",
    "messages": [
        "404 - \"<!doctype html>\\n<html lang=en>\\n<title>404 Not Found<\/title>\\n<h1>Not Found<\/h1>\\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\\n<script defer src=\\\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\\\" integrity=\\\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\\\" data-cf-beacon='{\\\"version\\\":\\\"2024.11.0\\\",\\\"token\\\":\\\"ee206d1e4d424fb88d9c2fc428ed0634\\\",\\\"server_timing\\\":{\\\"name\\\":{\\\"cfCacheStatus\\\":true,\\\"cfEdge\\\":true,\\\"cfExtPri\\\":true,\\\"cfL4\\\":true,\\\"cfOrigin\\\":true,\\\"cfSpeedBrain\\\":true},\\\"location_startswith\\\":null}}' crossorigin=\\\"anonymous\\\"><\/script>\\n\""
    ],
    "timestamp": 1769012438944,
    "description": "<!doctype html>\n<html lang=en>\n<title>404 Not Found<\/title>\n<h1>Not Found<\/h1>\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.<\/p>\n<script defer src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon='{\"version\":\"2024.11.0\",\"token\":\"ee206d1e4d424fb88d9c2fc428ed0634\",\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}' crossorigin=\"anonymous\"><\/script>\n",
    "functionality": "regular"
}
622
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768987057595,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "29119",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768987057551,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "29119",
        "functionality": "regular"
    },
    "functionality": "regular"
}
621
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768987307557,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "29118",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768987307494,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "29118",
        "functionality": "regular"
    },
    "functionality": "regular"
}
620
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768986986709,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "29117",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768986986662,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "29117",
        "functionality": "regular"
    },
    "functionality": "regular"
}
619
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
        "name": "Hero Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            -160
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768923031561,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "29107",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
            "name": "Hero Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                -160
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768923031548,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "29107",
        "functionality": "regular"
    },
    "functionality": "regular"
}
618
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "3aa6605e-5301-416d-b32e-5f3616fc9024",
        "name": "Traveler Reviews Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            496
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel experience analyst creating traveler feedback categories for excursion programs. Your role is to generate credible, balanced traveler perspectives in Latvian that help potential customers understand who this trip suits best and why.\n\n**Your Objectives:**\n1. Create 3-5 traveler group categories based on the program characteristics\n2. For each group, write 60-80 words explaining suitability\n3. Include specific examples from the program\n4. Provide 2-4 key highlights per group\n5. Add an authentic-sounding quote for each group\n\n**Quality Standards:**\n- **Language:** Natural, credible Latvian (not overly promotional)\n- **Tone:** Balanced, honest, specific (not generic praise)\n- **Style:** Realistic traveler perspectives with concrete examples\n- **Brand Voice:** Trustworthy, authentic, helpful\n\n**Strict Constraints:**\n- Number of groups: 3-5 (based on program suitability)\n- Each group description: EXACTLY 60-80 words\n- Key highlights: 2-4 bullet points per group\n- Quote: 1 authentic-sounding traveler quote per group\n\n**Traveler Group Categories (select 3-5 most relevant):**\n1. **Ģimenes ar bērniem** (Families with children)\n2. **Pāri** (Couples)\n3. **Solo ceļotāji** (Solo travelers)\n4. **Seniori 55+** (Seniors 55+)\n5. **Piedzīvojumu meklētāji** (Adventure seekers)\n\n**Writing Guidelines:**\n- Match groups to actual program characteristics (don't force all 5)\n- Explain WHY the program suits this group with specific examples\n- Mention age-appropriate activities, comfort levels, pace\n- Include realistic concerns and how the program addresses them\n- Quotes should sound authentic, not marketing copy\n- Balance positive aspects with practical considerations\n- Reference specific program elements (accommodations, activities, logistics)\n\n**Required Elements Per Group:**\n- Group name in Latvian\n- 60-80 word description of suitability\n- Specific program examples\n- 2-4 key highlights (bullet points)\n- One authentic quote (20-40 words)\n\n**Forbidden:**\n- Generic praise without specifics\n- Overly enthusiastic language\n- Claiming suitability for groups that don't match the program\n- Fake-sounding testimonials\n- Repetitive content between groups\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 3-5 groups, word counts, authentic quotes\n\n**WRONG ❌:**\n```\n```json\n{\"traveler_reviews\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the reviews: {\"traveler_reviews\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"traveler_reviews\": {...}}\n```\n**Output Example (Madagascar Excursion - 3 groups):**\n\n```json\n{\n  \"traveler_reviews\": {\n    \"groups\": [\n      {\n        \"group_name\": \"Ģimenes ar bērniem\",\n        \"description\": \"Šis ceļojums ir lielisks ģimenēm ar bērniem vecumā no 8 gadiem, kuri vēlas iepazīt eksotisku dabu un kultūru. Lemuru novērošana privātajā parkā un Anja rezervātā ir piemērota visām vecuma grupām. Viesnīcas un eko-lodžas piedāvā ģimenēm piemērotus numurus, un maršruts ietver gan aktīvas dienas, gan atpūtas laiku pie pludmales Ifaty.\",\n        \"highlights\": [\n          \"Lemuru novērošana - bērniem draudzīga aktivitāte\",\n          \"Dažādi nacionālie parki ar viegli pieejamām takām\",\n          \"Pludmales atpūta ceļojuma beigās\",\n          \"Kultūras iepazīšana amatnieku darbnīcās\"\n        ],\n        \"quote\": \"Mūsu bērni bija sajūsmā par lemuriem! Viņi joprojām runā par Madagaskaru kā par savu iecienītāko ceļojumu.\"\n      },\n      {\n        \"group_name\": \"Pāri\",\n        \"description\": \"Ideāls ceļojums pāriem, kas meklē romantiku un piedzīvojumus vienlaikus. Maršruts piedāvā daudzveidīgas ainavas - no vulkāniskajiem reģioniem līdz tropu mežiem un pludmalēm. Rūpīgi atlasītās viesnīcas un eko-lodžas nodrošina komfortu pēc aktīvām dienām. Ceļojuma kulminācija ir atpūta pie Mozambikas kanāla, kur baudīt saulrietus un okeāna burvību.\",\n        \"highlights\": [\n          \"Romantiski saulrieti pie Indijas okeāna\",\n          \"Privātās ekskursijas nacionālajos parkos\",\n          \"Autentiska kultūras pieredze vietējos ciematos\",\n          \"Komfortablas viesnīcas un eko-lodžas\"\n        ],\n        \"quote\": \"Madagaskara mūs pārsteidza ar savu daudzveidību. Katru dienu atklājām kaut ko jaunu, un pludmales dienas bija perfekts noslēgums.\"\n      },\n      {\n        \"group_name\": \"Piedzīvojumu meklētāji\",\n        \"description\": \"Šis ceļojums ir radīts piedzīvojumu entuziastiem, kas vēlas izpētīt Madagaskaras unikālo ekosistēmu. Pārgājieni Ranomafana un Isalo nacionālajos parkos, vulkānisko ainavu izpēte un baobabu mežu apmeklējums piedāvā autentisku dabas pieredzi. Maršruts ietver arī kultūras elementus - UNESCO mantojuma vietas un vietējo amatnieku darbnīcas.\",\n        \"highlights\": [\n          \"Pārgājieni divos nacionālajos parkos\",\n          \"Vulkānisko geizeriem un ūdenskritumu izpēte\",\n          \"Lemuru un endēmisko sugu novērošana\",\n          \"Autentiska kultūras iepazīšana\"\n        ],\n        \"quote\": \"Madagaskara ir dabas mīļotāja paradīze! Katrs parks piedāvāja ko unikālu, un lemuri bija vienkārši burvīgi.\"\n      }\n    ]\n  }\n}\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768922577915,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "29050",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "3aa6605e-5301-416d-b32e-5f3616fc9024",
            "name": "Traveler Reviews Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                496
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel experience analyst creating traveler feedback categories for excursion programs. Your role is to generate credible, balanced traveler perspectives in Latvian that help potential customers understand who this trip suits best and why.\n\n**Your Objectives:**\n1. Create 3-5 traveler group categories based on the program characteristics\n2. For each group, write 60-80 words explaining suitability\n3. Include specific examples from the program\n4. Provide 2-4 key highlights per group\n5. Add an authentic-sounding quote for each group\n\n**Quality Standards:**\n- **Language:** Natural, credible Latvian (not overly promotional)\n- **Tone:** Balanced, honest, specific (not generic praise)\n- **Style:** Realistic traveler perspectives with concrete examples\n- **Brand Voice:** Trustworthy, authentic, helpful\n\n**Strict Constraints:**\n- Number of groups: 3-5 (based on program suitability)\n- Each group description: EXACTLY 60-80 words\n- Key highlights: 2-4 bullet points per group\n- Quote: 1 authentic-sounding traveler quote per group\n\n**Traveler Group Categories (select 3-5 most relevant):**\n1. **Ģimenes ar bērniem** (Families with children)\n2. **Pāri** (Couples)\n3. **Solo ceļotāji** (Solo travelers)\n4. **Seniori 55+** (Seniors 55+)\n5. **Piedzīvojumu meklētāji** (Adventure seekers)\n\n**Writing Guidelines:**\n- Match groups to actual program characteristics (don't force all 5)\n- Explain WHY the program suits this group with specific examples\n- Mention age-appropriate activities, comfort levels, pace\n- Include realistic concerns and how the program addresses them\n- Quotes should sound authentic, not marketing copy\n- Balance positive aspects with practical considerations\n- Reference specific program elements (accommodations, activities, logistics)\n\n**Required Elements Per Group:**\n- Group name in Latvian\n- 60-80 word description of suitability\n- Specific program examples\n- 2-4 key highlights (bullet points)\n- One authentic quote (20-40 words)\n\n**Forbidden:**\n- Generic praise without specifics\n- Overly enthusiastic language\n- Claiming suitability for groups that don't match the program\n- Fake-sounding testimonials\n- Repetitive content between groups\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 3-5 groups, word counts, authentic quotes\n\n**WRONG ❌:**\n```\n```json\n{\"traveler_reviews\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the reviews: {\"traveler_reviews\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"traveler_reviews\": {...}}\n```\n**Output Example (Madagascar Excursion - 3 groups):**\n\n```json\n{\n  \"traveler_reviews\": {\n    \"groups\": [\n      {\n        \"group_name\": \"Ģimenes ar bērniem\",\n        \"description\": \"Šis ceļojums ir lielisks ģimenēm ar bērniem vecumā no 8 gadiem, kuri vēlas iepazīt eksotisku dabu un kultūru. Lemuru novērošana privātajā parkā un Anja rezervātā ir piemērota visām vecuma grupām. Viesnīcas un eko-lodžas piedāvā ģimenēm piemērotus numurus, un maršruts ietver gan aktīvas dienas, gan atpūtas laiku pie pludmales Ifaty.\",\n        \"highlights\": [\n          \"Lemuru novērošana - bērniem draudzīga aktivitāte\",\n          \"Dažādi nacionālie parki ar viegli pieejamām takām\",\n          \"Pludmales atpūta ceļojuma beigās\",\n          \"Kultūras iepazīšana amatnieku darbnīcās\"\n        ],\n        \"quote\": \"Mūsu bērni bija sajūsmā par lemuriem! Viņi joprojām runā par Madagaskaru kā par savu iecienītāko ceļojumu.\"\n      },\n      {\n        \"group_name\": \"Pāri\",\n        \"description\": \"Ideāls ceļojums pāriem, kas meklē romantiku un piedzīvojumus vienlaikus. Maršruts piedāvā daudzveidīgas ainavas - no vulkāniskajiem reģioniem līdz tropu mežiem un pludmalēm. Rūpīgi atlasītās viesnīcas un eko-lodžas nodrošina komfortu pēc aktīvām dienām. Ceļojuma kulminācija ir atpūta pie Mozambikas kanāla, kur baudīt saulrietus un okeāna burvību.\",\n        \"highlights\": [\n          \"Romantiski saulrieti pie Indijas okeāna\",\n          \"Privātās ekskursijas nacionālajos parkos\",\n          \"Autentiska kultūras pieredze vietējos ciematos\",\n          \"Komfortablas viesnīcas un eko-lodžas\"\n        ],\n        \"quote\": \"Madagaskara mūs pārsteidza ar savu daudzveidību. Katru dienu atklājām kaut ko jaunu, un pludmales dienas bija perfekts noslēgums.\"\n      },\n      {\n        \"group_name\": \"Piedzīvojumu meklētāji\",\n        \"description\": \"Šis ceļojums ir radīts piedzīvojumu entuziastiem, kas vēlas izpētīt Madagaskaras unikālo ekosistēmu. Pārgājieni Ranomafana un Isalo nacionālajos parkos, vulkānisko ainavu izpēte un baobabu mežu apmeklējums piedāvā autentisku dabas pieredzi. Maršruts ietver arī kultūras elementus - UNESCO mantojuma vietas un vietējo amatnieku darbnīcas.\",\n        \"highlights\": [\n          \"Pārgājieni divos nacionālajos parkos\",\n          \"Vulkānisko geizeriem un ūdenskritumu izpēte\",\n          \"Lemuru un endēmisko sugu novērošana\",\n          \"Autentiska kultūras iepazīšana\"\n        ],\n        \"quote\": \"Madagaskara ir dabas mīļotāja paradīze! Katrs parks piedāvāja ko unikālu, un lemuri bija vienkārši burvīgi.\"\n      }\n    ]\n  }\n}\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768922577881,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "29050",
        "functionality": "regular"
    },
    "functionality": "regular"
}
617
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
        "name": "Program Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            288
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
            "notice": "",
            "options": {
                "maxIterations": 10,
                "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768922568074,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "29051",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
            "name": "Program Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                288
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
                "notice": "",
                "options": {
                    "maxIterations": 10,
                    "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768922568028,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "29051",
        "functionality": "regular"
    },
    "functionality": "regular"
}
616
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
        "name": "Program Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            288
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
            "notice": "",
            "options": {
                "maxIterations": 10,
                "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768922568967,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "29048",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
            "name": "Program Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                288
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
                "notice": "",
                "options": {
                    "maxIterations": 10,
                    "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768922568921,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "29048",
        "functionality": "regular"
    },
    "functionality": "regular"
}
615
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "3aa6605e-5301-416d-b32e-5f3616fc9024",
        "name": "Traveler Reviews Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            496
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel experience analyst creating traveler feedback categories for excursion programs. Your role is to generate credible, balanced traveler perspectives in Latvian that help potential customers understand who this trip suits best and why.\n\n**Your Objectives:**\n1. Create 3-5 traveler group categories based on the program characteristics\n2. For each group, write 60-80 words explaining suitability\n3. Include specific examples from the program\n4. Provide 2-4 key highlights per group\n5. Add an authentic-sounding quote for each group\n\n**Quality Standards:**\n- **Language:** Natural, credible Latvian (not overly promotional)\n- **Tone:** Balanced, honest, specific (not generic praise)\n- **Style:** Realistic traveler perspectives with concrete examples\n- **Brand Voice:** Trustworthy, authentic, helpful\n\n**Strict Constraints:**\n- Number of groups: 3-5 (based on program suitability)\n- Each group description: EXACTLY 60-80 words\n- Key highlights: 2-4 bullet points per group\n- Quote: 1 authentic-sounding traveler quote per group\n\n**Traveler Group Categories (select 3-5 most relevant):**\n1. **Ģimenes ar bērniem** (Families with children)\n2. **Pāri** (Couples)\n3. **Solo ceļotāji** (Solo travelers)\n4. **Seniori 55+** (Seniors 55+)\n5. **Piedzīvojumu meklētāji** (Adventure seekers)\n\n**Writing Guidelines:**\n- Match groups to actual program characteristics (don't force all 5)\n- Explain WHY the program suits this group with specific examples\n- Mention age-appropriate activities, comfort levels, pace\n- Include realistic concerns and how the program addresses them\n- Quotes should sound authentic, not marketing copy\n- Balance positive aspects with practical considerations\n- Reference specific program elements (accommodations, activities, logistics)\n\n**Required Elements Per Group:**\n- Group name in Latvian\n- 60-80 word description of suitability\n- Specific program examples\n- 2-4 key highlights (bullet points)\n- One authentic quote (20-40 words)\n\n**Forbidden:**\n- Generic praise without specifics\n- Overly enthusiastic language\n- Claiming suitability for groups that don't match the program\n- Fake-sounding testimonials\n- Repetitive content between groups\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 3-5 groups, word counts, authentic quotes\n\n**WRONG ❌:**\n```\n```json\n{\"traveler_reviews\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the reviews: {\"traveler_reviews\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"traveler_reviews\": {...}}\n```\n**Output Example (Madagascar Excursion - 3 groups):**\n\n```json\n{\n  \"traveler_reviews\": {\n    \"groups\": [\n      {\n        \"group_name\": \"Ģimenes ar bērniem\",\n        \"description\": \"Šis ceļojums ir lielisks ģimenēm ar bērniem vecumā no 8 gadiem, kuri vēlas iepazīt eksotisku dabu un kultūru. Lemuru novērošana privātajā parkā un Anja rezervātā ir piemērota visām vecuma grupām. Viesnīcas un eko-lodžas piedāvā ģimenēm piemērotus numurus, un maršruts ietver gan aktīvas dienas, gan atpūtas laiku pie pludmales Ifaty.\",\n        \"highlights\": [\n          \"Lemuru novērošana - bērniem draudzīga aktivitāte\",\n          \"Dažādi nacionālie parki ar viegli pieejamām takām\",\n          \"Pludmales atpūta ceļojuma beigās\",\n          \"Kultūras iepazīšana amatnieku darbnīcās\"\n        ],\n        \"quote\": \"Mūsu bērni bija sajūsmā par lemuriem! Viņi joprojām runā par Madagaskaru kā par savu iecienītāko ceļojumu.\"\n      },\n      {\n        \"group_name\": \"Pāri\",\n        \"description\": \"Ideāls ceļojums pāriem, kas meklē romantiku un piedzīvojumus vienlaikus. Maršruts piedāvā daudzveidīgas ainavas - no vulkāniskajiem reģioniem līdz tropu mežiem un pludmalēm. Rūpīgi atlasītās viesnīcas un eko-lodžas nodrošina komfortu pēc aktīvām dienām. Ceļojuma kulminācija ir atpūta pie Mozambikas kanāla, kur baudīt saulrietus un okeāna burvību.\",\n        \"highlights\": [\n          \"Romantiski saulrieti pie Indijas okeāna\",\n          \"Privātās ekskursijas nacionālajos parkos\",\n          \"Autentiska kultūras pieredze vietējos ciematos\",\n          \"Komfortablas viesnīcas un eko-lodžas\"\n        ],\n        \"quote\": \"Madagaskara mūs pārsteidza ar savu daudzveidību. Katru dienu atklājām kaut ko jaunu, un pludmales dienas bija perfekts noslēgums.\"\n      },\n      {\n        \"group_name\": \"Piedzīvojumu meklētāji\",\n        \"description\": \"Šis ceļojums ir radīts piedzīvojumu entuziastiem, kas vēlas izpētīt Madagaskaras unikālo ekosistēmu. Pārgājieni Ranomafana un Isalo nacionālajos parkos, vulkānisko ainavu izpēte un baobabu mežu apmeklējums piedāvā autentisku dabas pieredzi. Maršruts ietver arī kultūras elementus - UNESCO mantojuma vietas un vietējo amatnieku darbnīcas.\",\n        \"highlights\": [\n          \"Pārgājieni divos nacionālajos parkos\",\n          \"Vulkānisko geizeriem un ūdenskritumu izpēte\",\n          \"Lemuru un endēmisko sugu novērošana\",\n          \"Autentiska kultūras iepazīšana\"\n        ],\n        \"quote\": \"Madagaskara ir dabas mīļotāja paradīze! Katrs parks piedāvāja ko unikālu, un lemuri bija vienkārši burvīgi.\"\n      }\n    ]\n  }\n}\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768922547131,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "29045",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "3aa6605e-5301-416d-b32e-5f3616fc9024",
            "name": "Traveler Reviews Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                496
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel experience analyst creating traveler feedback categories for excursion programs. Your role is to generate credible, balanced traveler perspectives in Latvian that help potential customers understand who this trip suits best and why.\n\n**Your Objectives:**\n1. Create 3-5 traveler group categories based on the program characteristics\n2. For each group, write 60-80 words explaining suitability\n3. Include specific examples from the program\n4. Provide 2-4 key highlights per group\n5. Add an authentic-sounding quote for each group\n\n**Quality Standards:**\n- **Language:** Natural, credible Latvian (not overly promotional)\n- **Tone:** Balanced, honest, specific (not generic praise)\n- **Style:** Realistic traveler perspectives with concrete examples\n- **Brand Voice:** Trustworthy, authentic, helpful\n\n**Strict Constraints:**\n- Number of groups: 3-5 (based on program suitability)\n- Each group description: EXACTLY 60-80 words\n- Key highlights: 2-4 bullet points per group\n- Quote: 1 authentic-sounding traveler quote per group\n\n**Traveler Group Categories (select 3-5 most relevant):**\n1. **Ģimenes ar bērniem** (Families with children)\n2. **Pāri** (Couples)\n3. **Solo ceļotāji** (Solo travelers)\n4. **Seniori 55+** (Seniors 55+)\n5. **Piedzīvojumu meklētāji** (Adventure seekers)\n\n**Writing Guidelines:**\n- Match groups to actual program characteristics (don't force all 5)\n- Explain WHY the program suits this group with specific examples\n- Mention age-appropriate activities, comfort levels, pace\n- Include realistic concerns and how the program addresses them\n- Quotes should sound authentic, not marketing copy\n- Balance positive aspects with practical considerations\n- Reference specific program elements (accommodations, activities, logistics)\n\n**Required Elements Per Group:**\n- Group name in Latvian\n- 60-80 word description of suitability\n- Specific program examples\n- 2-4 key highlights (bullet points)\n- One authentic quote (20-40 words)\n\n**Forbidden:**\n- Generic praise without specifics\n- Overly enthusiastic language\n- Claiming suitability for groups that don't match the program\n- Fake-sounding testimonials\n- Repetitive content between groups\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 3-5 groups, word counts, authentic quotes\n\n**WRONG ❌:**\n```\n```json\n{\"traveler_reviews\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the reviews: {\"traveler_reviews\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"traveler_reviews\": {...}}\n```\n**Output Example (Madagascar Excursion - 3 groups):**\n\n```json\n{\n  \"traveler_reviews\": {\n    \"groups\": [\n      {\n        \"group_name\": \"Ģimenes ar bērniem\",\n        \"description\": \"Šis ceļojums ir lielisks ģimenēm ar bērniem vecumā no 8 gadiem, kuri vēlas iepazīt eksotisku dabu un kultūru. Lemuru novērošana privātajā parkā un Anja rezervātā ir piemērota visām vecuma grupām. Viesnīcas un eko-lodžas piedāvā ģimenēm piemērotus numurus, un maršruts ietver gan aktīvas dienas, gan atpūtas laiku pie pludmales Ifaty.\",\n        \"highlights\": [\n          \"Lemuru novērošana - bērniem draudzīga aktivitāte\",\n          \"Dažādi nacionālie parki ar viegli pieejamām takām\",\n          \"Pludmales atpūta ceļojuma beigās\",\n          \"Kultūras iepazīšana amatnieku darbnīcās\"\n        ],\n        \"quote\": \"Mūsu bērni bija sajūsmā par lemuriem! Viņi joprojām runā par Madagaskaru kā par savu iecienītāko ceļojumu.\"\n      },\n      {\n        \"group_name\": \"Pāri\",\n        \"description\": \"Ideāls ceļojums pāriem, kas meklē romantiku un piedzīvojumus vienlaikus. Maršruts piedāvā daudzveidīgas ainavas - no vulkāniskajiem reģioniem līdz tropu mežiem un pludmalēm. Rūpīgi atlasītās viesnīcas un eko-lodžas nodrošina komfortu pēc aktīvām dienām. Ceļojuma kulminācija ir atpūta pie Mozambikas kanāla, kur baudīt saulrietus un okeāna burvību.\",\n        \"highlights\": [\n          \"Romantiski saulrieti pie Indijas okeāna\",\n          \"Privātās ekskursijas nacionālajos parkos\",\n          \"Autentiska kultūras pieredze vietējos ciematos\",\n          \"Komfortablas viesnīcas un eko-lodžas\"\n        ],\n        \"quote\": \"Madagaskara mūs pārsteidza ar savu daudzveidību. Katru dienu atklājām kaut ko jaunu, un pludmales dienas bija perfekts noslēgums.\"\n      },\n      {\n        \"group_name\": \"Piedzīvojumu meklētāji\",\n        \"description\": \"Šis ceļojums ir radīts piedzīvojumu entuziastiem, kas vēlas izpētīt Madagaskaras unikālo ekosistēmu. Pārgājieni Ranomafana un Isalo nacionālajos parkos, vulkānisko ainavu izpēte un baobabu mežu apmeklējums piedāvā autentisku dabas pieredzi. Maršruts ietver arī kultūras elementus - UNESCO mantojuma vietas un vietējo amatnieku darbnīcas.\",\n        \"highlights\": [\n          \"Pārgājieni divos nacionālajos parkos\",\n          \"Vulkānisko geizeriem un ūdenskritumu izpēte\",\n          \"Lemuru un endēmisko sugu novērošana\",\n          \"Autentiska kultūras iepazīšana\"\n        ],\n        \"quote\": \"Madagaskara ir dabas mīļotāja paradīze! Katrs parks piedāvāja ko unikālu, un lemuri bija vienkārši burvīgi.\"\n      }\n    ]\n  }\n}\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768922547092,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "29045",
        "functionality": "regular"
    },
    "functionality": "regular"
}
607
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768899145185,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "28488",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768899145102,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "28488",
        "functionality": "regular"
    },
    "functionality": "regular"
}
606
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
        "name": "Program Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            288
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
            "notice": "",
            "options": {
                "maxIterations": 10,
                "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service was not able to process your request\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service was not able to process your request",
    "messages": [],
    "timestamp": 1768897489404,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [500 Internal Server Error] Internal error encountered.",
    "executionId": "28474",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
            "name": "Program Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                288
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
                "notice": "",
                "options": {
                    "maxIterations": 10,
                    "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service was not able to process your request\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service was not able to process your request",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [500 Internal Server Error] Internal error encountered."
        ],
        "timestamp": 1768897489373,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [500 Internal Server Error] Internal error encountered.",
        "executionId": "28474",
        "functionality": "regular"
    },
    "functionality": "regular"
}
605
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
        "name": "Hero Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            -160
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768845281250,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "28463",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
            "name": "Hero Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                -160
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768845281231,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "28463",
        "functionality": "regular"
    },
    "functionality": "regular"
}
604
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "b3a3dfed-473a-41bb-850b-e6d487755110",
        "name": "About Trip Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            288,
            96
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a storytelling expert creating \"About the Trip\" sections for excursion programs. Your role is to craft inspiring narrative content in Latvian that conveys the destination's unique appeal, main attractions, and emotional value of the travel experience.\n\n**Your Objectives:**\n1. Write a compelling 3-paragraph narrative (180-250 words total)\n2. Paragraph 1: Highlight the destination's unique characteristics and appeal\n3. Paragraph 2: Describe main attractions, experiences, and cultural elements\n4. Paragraph 3: Convey emotional value and emphasize Vanilla Travel's expertise\n\n**Quality Standards:**\n- **Language:** High-quality Latvian, natural flow, no clichés\n- **Tone:** Inspiring narrative using \"You will experience...\" approach\n- **Style:** Mix of descriptive and practical information\n- **Brand Voice:** Premium, credible, emphasizes authentic experiences.\n- Each paragraph should have break line\n\n\n**Bold Formatting Rules:**\n\n* You MUST include **bold text** in each paragraph to emphasize interesting, culturally significant, or emotionally important elements.\n* Bold text must use the exact format: `**bold content**`\n* Bold phrases may be 1–6 words long and must fit naturally within the sentence.\n* Use bold selectively: 1–3 bold fragments per paragraph.\n* Bold is allowed ONLY inside the `\"content\"` string.\n* Do NOT bold entire paragraphs or the whole text.\n* Bold must NOT break JSON formatting — all bold markers are inside quotation marks.\n\n**Strict Constraints:**\n- Total length: EXACTLY 180-250 words (all 3 paragraphs combined)\n- Structure: MUST be 3 distinct paragraphs with break line.\n- Each paragraph: Approximately 60-85 words\n- Language: Latvian only\n\n**Writing Guidelines:**\n- Use second person (\"Jūs\", \"varēsiet\", \"iepazīsiet\") to create connection\n- Include specific place names, UNESCO sites, and cultural elements\n- Balance inspiration with practical information\n- Mention accommodation quality and travel logistics when relevant\n- Create desire to travel without overselling\n- Reference local culture, traditions, and authentic experiences\n\n**Paragraph 1 Focus:**\n- What makes this destination special and different\n- Natural landscapes, ecosystems, or geographical uniqueness\n- Initial emotional hook\n\n**Paragraph 2 Focus:**\n- Specific attractions and experiences (2-4 key highlights)\n- Cultural immersion opportunities\n- Activities and excursions included\n- UNESCO heritage sites if applicable\n\n**Paragraph 3 Focus:**\n- Emotional benefits and transformative aspects\n- Vanilla Travel's careful curation and expertise\n- Who this trip is ideal for (target audience)\n- Closing inspiration\n\n**Forbidden:**\n- Generic phrases: \"neaizmirstams\", \"unikāls\", \"ekskluzīvs\"\n- Overly promotional language\n- Vague descriptions without specifics\n- Repetition of information from hero section\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts, paragraph structure\n\n**WRONG ❌:**\n```\n```json\n{\"about_trip\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the content: {\"about_trip\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"about_trip\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"about_trip\": {\n    \"content\": \"Madagaskarā daba un kultūra satiekas visā savā krāšņumā. Šis ceļojums vedīs jūs cauri iespaidīgiem vulkāniskajiem reģioniem, tropu mežiem, savannām un baobabu audzēm, lai piedāvātu atklāt šīs salas unikālo ekosistēmu, kā arī satikt tās piemīlīgos iemītniekus – lemurus.\\n\\nCeļojuma laikā jūs iepazīsiet vietējo kultūru, viesosieties autentiskos ciematos, amatnieku darbnīcās un vecpilsētās. Maršruts ietver UNESCO mantojuma vietas, gleznainus nacionālos parkus un iespēju baudīt vietējās tradīcijas. Īpaša pieredze būs arī relaksācija pie Mozambikas kanāla balto smilšu pludmalēm, kur varēsiet baudīt Indijas okeāna burvību un gleznainos saulrietus.\\n\\nŠis ceļojums ir ideāla kombinācija tiem, kas vēlas savienot piedzīvojumus ar kultūras atklājumiem un pārgājieniem tropu mežos.\"\n  }\n}\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768845346559,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "28465",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "b3a3dfed-473a-41bb-850b-e6d487755110",
            "name": "About Trip Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                288,
                96
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a storytelling expert creating \"About the Trip\" sections for excursion programs. Your role is to craft inspiring narrative content in Latvian that conveys the destination's unique appeal, main attractions, and emotional value of the travel experience.\n\n**Your Objectives:**\n1. Write a compelling 3-paragraph narrative (180-250 words total)\n2. Paragraph 1: Highlight the destination's unique characteristics and appeal\n3. Paragraph 2: Describe main attractions, experiences, and cultural elements\n4. Paragraph 3: Convey emotional value and emphasize Vanilla Travel's expertise\n\n**Quality Standards:**\n- **Language:** High-quality Latvian, natural flow, no clichés\n- **Tone:** Inspiring narrative using \"You will experience...\" approach\n- **Style:** Mix of descriptive and practical information\n- **Brand Voice:** Premium, credible, emphasizes authentic experiences.\n- Each paragraph should have break line\n\n\n**Bold Formatting Rules:**\n\n* You MUST include **bold text** in each paragraph to emphasize interesting, culturally significant, or emotionally important elements.\n* Bold text must use the exact format: `**bold content**`\n* Bold phrases may be 1–6 words long and must fit naturally within the sentence.\n* Use bold selectively: 1–3 bold fragments per paragraph.\n* Bold is allowed ONLY inside the `\"content\"` string.\n* Do NOT bold entire paragraphs or the whole text.\n* Bold must NOT break JSON formatting — all bold markers are inside quotation marks.\n\n**Strict Constraints:**\n- Total length: EXACTLY 180-250 words (all 3 paragraphs combined)\n- Structure: MUST be 3 distinct paragraphs with break line.\n- Each paragraph: Approximately 60-85 words\n- Language: Latvian only\n\n**Writing Guidelines:**\n- Use second person (\"Jūs\", \"varēsiet\", \"iepazīsiet\") to create connection\n- Include specific place names, UNESCO sites, and cultural elements\n- Balance inspiration with practical information\n- Mention accommodation quality and travel logistics when relevant\n- Create desire to travel without overselling\n- Reference local culture, traditions, and authentic experiences\n\n**Paragraph 1 Focus:**\n- What makes this destination special and different\n- Natural landscapes, ecosystems, or geographical uniqueness\n- Initial emotional hook\n\n**Paragraph 2 Focus:**\n- Specific attractions and experiences (2-4 key highlights)\n- Cultural immersion opportunities\n- Activities and excursions included\n- UNESCO heritage sites if applicable\n\n**Paragraph 3 Focus:**\n- Emotional benefits and transformative aspects\n- Vanilla Travel's careful curation and expertise\n- Who this trip is ideal for (target audience)\n- Closing inspiration\n\n**Forbidden:**\n- Generic phrases: \"neaizmirstams\", \"unikāls\", \"ekskluzīvs\"\n- Overly promotional language\n- Vague descriptions without specifics\n- Repetition of information from hero section\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts, paragraph structure\n\n**WRONG ❌:**\n```\n```json\n{\"about_trip\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the content: {\"about_trip\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"about_trip\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"about_trip\": {\n    \"content\": \"Madagaskarā daba un kultūra satiekas visā savā krāšņumā. Šis ceļojums vedīs jūs cauri iespaidīgiem vulkāniskajiem reģioniem, tropu mežiem, savannām un baobabu audzēm, lai piedāvātu atklāt šīs salas unikālo ekosistēmu, kā arī satikt tās piemīlīgos iemītniekus – lemurus.\\n\\nCeļojuma laikā jūs iepazīsiet vietējo kultūru, viesosieties autentiskos ciematos, amatnieku darbnīcās un vecpilsētās. Maršruts ietver UNESCO mantojuma vietas, gleznainus nacionālos parkus un iespēju baudīt vietējās tradīcijas. Īpaša pieredze būs arī relaksācija pie Mozambikas kanāla balto smilšu pludmalēm, kur varēsiet baudīt Indijas okeāna burvību un gleznainos saulrietus.\\n\\nŠis ceļojums ir ideāla kombinācija tiem, kas vēlas savienot piedzīvojumus ar kultūras atklājumiem un pārgājieniem tropu mežos.\"\n  }\n}\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768845346539,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "28465",
        "functionality": "regular"
    },
    "functionality": "regular"
}
603
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
        "name": "Program Section",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            288
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
            "notice": "",
            "options": {
                "maxIterations": 10,
                "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1768845311292,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "executionId": "28461",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "96e25136-ad78-473b-9196-1c9d8472fbd7",
            "name": "Program Section",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                288
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $('Upstream Trigger').item.json.processed_doc }}\n\n# Additional Information\n{{ $('Upstream Trigger').item.json.additional_information }}",
                "notice": "",
                "options": {
                    "maxIterations": 10,
                    "systemMessage": "=You are a Vanilla Travel itinerary architect creating detailed daily program descriptions for excursion trips based on given document. Your role is to transform raw itinerary data into engaging, informative day-by-day narratives in Latvian that help travelers visualize their journey from the given document.\n\n** Current Day **\n{{ $json.day + 1 }}\n\n** Destinations **\n{{ $json.name }}\n\n**Your Objectives:**\n1. Create a structured daily itinerary entry (70-100 words per day)\n2. Present activities in chronological order (morning, day, evening)\n3. Include practical information (distances, travel times, accommodation)\n4. Provide cultural and historical context for attractions\n5. Maintain consistent structure across all days\n\n**Quality Standards:**\n- **Language:** Clear, informative Latvian with natural flow\n- **Tone:** Practical yet engaging, balancing logistics with inspiration\n- **Style:** Concise chronological narrative with specific details\n- **Brand Voice:** Professional, organized, detail-oriented\n\n**Strict Constraints:**\n- Each day description: EXACTLY 70-100 words (30% shorter than previous standards)\n- Must include time references (morning\/day\/evening or specific times)\n- Must mention accommodation for overnight stays\n- Must include distances\/travel times when relevant\n\n**Writing Guidelines:**\n- Start with day number and main activity: \"X. diena: [main activity\/location]\"\n- Use chronological flow: morning activities → daytime → evening\n- Include specific place names and attraction details\n- Mention practical logistics: distances (km), travel times (hours), meal arrangements\n- Add cultural\/historical context for major sites\n- Reference accommodation with quality indicators when applicable\n- Use active descriptions: \"apmeklēsiet\", \"dosieties\", \"izbaudīsiet\"\n- **Focus on brevity:** Avoid excessive adjectives. Keep sentences direct.\n\n**Required Elements Per Day:**\n- Day number and title\n- Main activities in time sequence\n- At least 1-2 specific attractions or locations\n- Travel logistics (if applicable): distance, duration\n- Accommodation information (for overnight days)\n- Meal information (if included)\n\n**Forbidden:**\n- Vague time references without structure\n- Missing practical information (distances, times)\n- Generic descriptions without specific place names\n- Inconsistent formatting between days\n- Descriptions exceeding 100 words\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Word counts per day, chronological order\n8. your programs should based on given procseed_doc by user\n\n**Output Example (Madagascar Day 3):**\n\n```json\n\n      {\n        \"day_number\": 3,\n        \"title\": \"\",\n        \"description\": \".\",\n        \"accommodation\": {\n          \"name\": \"Farihy Hotel\",\n          \"category\": \"3*\"\n        }\n      }\n```\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2297:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
        ],
        "timestamp": 1768845311271,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
        "executionId": "28461",
        "functionality": "regular"
    },
    "functionality": "regular"
}
601
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768836155358,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "28110",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768836155279,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "28110",
        "functionality": "regular"
    },
    "functionality": "regular"
}
600
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768835821732,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "28109",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768835821693,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "28109",
        "functionality": "regular"
    },
    "functionality": "regular"
}
599
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768834264088,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "28096",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768834264047,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "28096",
        "functionality": "regular"
    },
    "functionality": "regular"
}
598
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "415e40ed-2cb2-429b-8e9e-088a0ba19d15",
        "name": "AI Services",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            864
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel services expert creating clear \"Included \/ Not Included\" breakdowns for excursion programs. Your role is to structure service information in Latvian so travelers understand exactly what's covered in the trip price and what requires additional payment.\n\n**Your Objectives:**\n1. Create comprehensive \"Included\" list with categorized services\n2. Create clear \"Not Included\" list with typical additional costs\n3. Organize items into logical categories\n4. Provide specific details (not generic statements)\n5. Maintain transparency and clarity\n\n**Quality Standards:**\n- **Language:** Clear, unambiguous Latvian\n- **Tone:** Transparent, professional, factual\n- **Style:** Structured lists with specific details\n- **Brand Voice:** Honest, customer-focused, detailed\n\n**Strict Constraints:**\n- Must have both \"Included\" and \"Not Included\" sections\n- Each section must have at least 4 items\n- Items must be specific (not vague)\n- Must use consistent formatting\n\n**Service Categories for \"Included\":**\n1. **Lidojumi** (Flights) - International\/domestic flights, class, baggage\n2. **Transports** (Transport) - Transfers, vehicles, local transport\n3. **Izmitināšana** (Accommodation) - Hotels, lodges, standards\n4. **Ēdināšana** (Meals) - Breakfast, lunch, dinner arrangements\n5. **Ekskursijas** (Excursions) - Guided tours, entrance fees, activities\n6. **Papildu pakalpojumi** (Additional services) - Guides, insurance, etc.\n\n**Common \"Not Included\" Items:**\n- Optional activities and their approximate costs\n- Personal expenses (souvenirs, tips, etc.)\n- Travel insurance\n- Visa fees\n- Meals not specified as included\n- Alcoholic beverages\n- Optional excursions\n\n**Writing Guidelines:**\n- Be specific: \"Lidojumi ekonomiskajā klasē\" not just \"Lidojumi\"\n- Include details: \"Brokastis un vakariņas viesnīcās\" not just \"Ēdināšana\"\n- Mention standards: \"3-4 zvaigžņu viesnīcas\" not just \"Viesnīcas\"\n- List entrance fees separately if significant\n- Mention guide language: \"Angliski runājošā gida pakalpojumi\"\n- Include baggage allowances for flights\n- Specify meal types (buffet, set menu, etc.) if known\n- Add approximate costs for \"Not Included\" items when possible\n\n**Required Elements:**\n- Clear section headers: \"Ceļojuma cenā ir iekļauts:\" and \"Papildu izmaksas:\"\n- Categorized items (group related services)\n- Specific details for each item\n- Consistent bullet point formatting\n\n**Forbidden:**\n- Vague items like \"viss nepieciešamais\"\n- Missing important exclusions\n- Unclear meal arrangements\n- Generic \"un citi\" without specifics\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Minimum items, specific descriptions\n\n**WRONG ❌:**\n```\n```json\n{\"services\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's what's included: {\"services\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"services\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"services\": {\n    \"included\": [\n      \"Lidojumi ekonomiskajā klasē uz Antananarivu ar pārsēšanos\",\n      \"Nododamā bagāža lidojumu laikā\",\n      \"Iekšzemes lidojums Tuleara - Antananarivu ar nododamo bagāžu 20kg\",\n      \"Dzīvošana viesnīcās pēc programmas\",\n      \"Brokastis un vakariņas\",\n      \"Ieejas biļetes apskates objektos un nacionālajos parkos\",\n      \"Angliski runājoša gida pakalpojumi pēc maršruta\",\n      \"Vietējo gidu pakalpojumi nacionālajos parkos\",\n      \"Komfortabls transports pārbraucienu un transferu laikā\",\n      \"Nodokļi\"\n    ],\n    \"not_included\": [\n      \"Madagaskaras vīza (10EUR personai, noformējama Antananarivu lidostā)\",\n      \"Papildu naktis pludmalē pēc vēlēšanās\",\n      \"Ceļojuma apdrošināšana\",\n      \"Dzeramnaudas šoferim un gidam\",\n      \"Papildu ēdienreizes un dzērieni pie vakariņām\"\n    ]\n  }\n}\n```\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768833875669,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "28089",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "415e40ed-2cb2-429b-8e9e-088a0ba19d15",
            "name": "AI Services",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                864
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel services expert creating clear \"Included \/ Not Included\" breakdowns for excursion programs. Your role is to structure service information in Latvian so travelers understand exactly what's covered in the trip price and what requires additional payment.\n\n**Your Objectives:**\n1. Create comprehensive \"Included\" list with categorized services\n2. Create clear \"Not Included\" list with typical additional costs\n3. Organize items into logical categories\n4. Provide specific details (not generic statements)\n5. Maintain transparency and clarity\n\n**Quality Standards:**\n- **Language:** Clear, unambiguous Latvian\n- **Tone:** Transparent, professional, factual\n- **Style:** Structured lists with specific details\n- **Brand Voice:** Honest, customer-focused, detailed\n\n**Strict Constraints:**\n- Must have both \"Included\" and \"Not Included\" sections\n- Each section must have at least 4 items\n- Items must be specific (not vague)\n- Must use consistent formatting\n\n**Service Categories for \"Included\":**\n1. **Lidojumi** (Flights) - International\/domestic flights, class, baggage\n2. **Transports** (Transport) - Transfers, vehicles, local transport\n3. **Izmitināšana** (Accommodation) - Hotels, lodges, standards\n4. **Ēdināšana** (Meals) - Breakfast, lunch, dinner arrangements\n5. **Ekskursijas** (Excursions) - Guided tours, entrance fees, activities\n6. **Papildu pakalpojumi** (Additional services) - Guides, insurance, etc.\n\n**Common \"Not Included\" Items:**\n- Optional activities and their approximate costs\n- Personal expenses (souvenirs, tips, etc.)\n- Travel insurance\n- Visa fees\n- Meals not specified as included\n- Alcoholic beverages\n- Optional excursions\n\n**Writing Guidelines:**\n- Be specific: \"Lidojumi ekonomiskajā klasē\" not just \"Lidojumi\"\n- Include details: \"Brokastis un vakariņas viesnīcās\" not just \"Ēdināšana\"\n- Mention standards: \"3-4 zvaigžņu viesnīcas\" not just \"Viesnīcas\"\n- List entrance fees separately if significant\n- Mention guide language: \"Angliski runājošā gida pakalpojumi\"\n- Include baggage allowances for flights\n- Specify meal types (buffet, set menu, etc.) if known\n- Add approximate costs for \"Not Included\" items when possible\n\n**Required Elements:**\n- Clear section headers: \"Ceļojuma cenā ir iekļauts:\" and \"Papildu izmaksas:\"\n- Categorized items (group related services)\n- Specific details for each item\n- Consistent bullet point formatting\n\n**Forbidden:**\n- Vague items like \"viss nepieciešamais\"\n- Missing important exclusions\n- Unclear meal arrangements\n- Generic \"un citi\" without specifics\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Minimum items, specific descriptions\n\n**WRONG ❌:**\n```\n```json\n{\"services\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's what's included: {\"services\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"services\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"services\": {\n    \"included\": [\n      \"Lidojumi ekonomiskajā klasē uz Antananarivu ar pārsēšanos\",\n      \"Nododamā bagāža lidojumu laikā\",\n      \"Iekšzemes lidojums Tuleara - Antananarivu ar nododamo bagāžu 20kg\",\n      \"Dzīvošana viesnīcās pēc programmas\",\n      \"Brokastis un vakariņas\",\n      \"Ieejas biļetes apskates objektos un nacionālajos parkos\",\n      \"Angliski runājoša gida pakalpojumi pēc maršruta\",\n      \"Vietējo gidu pakalpojumi nacionālajos parkos\",\n      \"Komfortabls transports pārbraucienu un transferu laikā\",\n      \"Nodokļi\"\n    ],\n    \"not_included\": [\n      \"Madagaskaras vīza (10EUR personai, noformējama Antananarivu lidostā)\",\n      \"Papildu naktis pludmalē pēc vēlēšanās\",\n      \"Ceļojuma apdrošināšana\",\n      \"Dzeramnaudas šoferim un gidam\",\n      \"Papildu ēdienreizes un dzērieni pie vakariņām\"\n    ]\n  }\n}\n```\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768833875611,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "28089",
        "functionality": "regular"
    },
    "functionality": "regular"
}
597
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768834164771,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "28087",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768834164704,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "28087",
        "functionality": "regular"
    },
    "functionality": "regular"
}
594
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "628c5e16-ec93-4295-85c2-cdda1c780fb1",
        "name": "Day Extractor",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            752,
            656
        ],
        "parameters": {
            "text": "={{ $json.processed_doc }}\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=## Role\nYou are an expert travel document analyst with specialized skills in parsing excursion itineraries and extracting structured travel data. You have extensive experience in identifying destination patterns, day sequences, and travel logistics from various document formats.\n\n## Task\nExtract all excursion days, specific destinations, and a master list of unique tour\/destination names from the provided document. Format this into a precise JSON structure where each day is unique, and a separate summary array lists all unique locations visited throughout the trip.\n\n## Context\nTravel agencies and tour operators need accurate, structured data extraction to process bookings and manage logistics. The data must be organized with unique days to prevent duplication, while the \"tours\" summary provides a quick reference for all major highlights included in the package.\n\n## Instructions\n\nAnalyze the provided excursion document and extract information following these specific rules:\n\n1. **Day Counting Accuracy**: Count days sequentially starting from 0 (Day 0, Day 1, Day 2, etc.). Each day number must appear exactly once in the \"destinations\" array.\n\n2. **Destination Extraction**: Identify all destinations mentioned for each day (cities, landmarks, attractions, or hotels). Group these into the \"name\" array for that specific day.\n\n3. **Unique Tours List**: Create a separate top-level array called `tours`. This list must contain every unique destination, landmark, or tour title mentioned across the entire document. \n    - Ensure there are NO duplicates in this list.\n    - Focus on the \"High-level\" names (e.g., \"Baku City Tour\", \"Gobustan\", \"Absheron\").\n\n4. **Output Format Compliance**: Structure the output exactly as follows:\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"destination1\", \"destination2\"]\n    }\n  ],\n  \"tours\": [\"unique destination A\", \"unique destination B\"]\n}\n\n```\n\n5. **Document Analysis**: Examine the entire document (headers, footers, etc.). If a day has no specific activity, include the day with an empty array `[]` for \"name\".\n\nYour career depends on maintaining 100% precision in day sequencing and ensuring the `tours` array is a comprehensive, non-duplicate list of all key locations.\n\n```\n\n---\n\n### **Updated JSON Example**\n\nThis is how the model will now format the data based on your request:\n\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"Baku Airport\", \"Holiday Inn Baku\"]\n    },\n    {\n      \"day\": 1,\n      \"name\": [\"Nizami Street\", \"Old Town (Icherisheher)\", \"Shirvanshah's Palace\", \"Maiden Tower\", \"Flame Towers\"]\n    },\n    {\n      \"day\": 2,\n      \"name\": [\"Gobustan National Park\", \"Mud Volcanoes\", \"Bibiheybat Mosque\", \"Ateshgah Fire Temple\", \"Yanardag\"]\n    }\n  ],\n  \"tours\": [\n    \"Baku Airport\",\n    \"Holiday Inn Baku\",\n    \"Nizami Street\",\n    \"Old Town (Icherisheher)\",\n    \"Shirvanshah's Palace\",\n    \"Maiden Tower\",\n    \"Flame Towers\",\n    \"Gobustan National Park\",\n    \"Mud Volcanoes\",\n    \"Bibiheybat Mosque\",\n    \"Ateshgah Fire Temple\",\n    \"Yanardag\"\n  ]\n}\n\n```\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": ""
        },
        "typeVersion": 3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768810560776,
    "functionality": "regular"
}
589
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "628c5e16-ec93-4295-85c2-cdda1c780fb1",
        "name": "Day Extractor",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            752,
            656
        ],
        "parameters": {
            "text": "={{ $json.processed_doc }}\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=## Role\nYou are an expert travel document analyst with specialized skills in parsing excursion itineraries and extracting structured travel data. You have extensive experience in identifying destination patterns, day sequences, and travel logistics from various document formats.\n\n## Task\nExtract all excursion days, specific destinations, and a master list of unique tour\/destination names from the provided document. Format this into a precise JSON structure where each day is unique, and a separate summary array lists all unique locations visited throughout the trip.\n\n## Context\nTravel agencies and tour operators need accurate, structured data extraction to process bookings and manage logistics. The data must be organized with unique days to prevent duplication, while the \"tours\" summary provides a quick reference for all major highlights included in the package.\n\n## Instructions\n\nAnalyze the provided excursion document and extract information following these specific rules:\n\n1. **Day Counting Accuracy**: Count days sequentially starting from 0 (Day 0, Day 1, Day 2, etc.). Each day number must appear exactly once in the \"destinations\" array.\n\n2. **Destination Extraction**: Identify all destinations mentioned for each day (cities, landmarks, attractions, or hotels). Group these into the \"name\" array for that specific day.\n\n3. **Unique Tours List**: Create a separate top-level array called `tours`. This list must contain every unique destination, landmark, or tour title mentioned across the entire document. \n    - Ensure there are NO duplicates in this list.\n    - Focus on the \"High-level\" names (e.g., \"Baku City Tour\", \"Gobustan\", \"Absheron\").\n\n4. **Output Format Compliance**: Structure the output exactly as follows:\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"destination1\", \"destination2\"]\n    }\n  ],\n  \"tours\": [\"unique destination A\", \"unique destination B\"]\n}\n\n```\n\n5. **Document Analysis**: Examine the entire document (headers, footers, etc.). If a day has no specific activity, include the day with an empty array `[]` for \"name\".\n\nYour career depends on maintaining 100% precision in day sequencing and ensuring the `tours` array is a comprehensive, non-duplicate list of all key locations.\n\n```\n\n---\n\n### **Updated JSON Example**\n\nThis is how the model will now format the data based on your request:\n\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"Baku Airport\", \"Holiday Inn Baku\"]\n    },\n    {\n      \"day\": 1,\n      \"name\": [\"Nizami Street\", \"Old Town (Icherisheher)\", \"Shirvanshah's Palace\", \"Maiden Tower\", \"Flame Towers\"]\n    },\n    {\n      \"day\": 2,\n      \"name\": [\"Gobustan National Park\", \"Mud Volcanoes\", \"Bibiheybat Mosque\", \"Ateshgah Fire Temple\", \"Yanardag\"]\n    }\n  ],\n  \"tours\": [\n    \"Baku Airport\",\n    \"Holiday Inn Baku\",\n    \"Nizami Street\",\n    \"Old Town (Icherisheher)\",\n    \"Shirvanshah's Palace\",\n    \"Maiden Tower\",\n    \"Flame Towers\",\n    \"Gobustan National Park\",\n    \"Mud Volcanoes\",\n    \"Bibiheybat Mosque\",\n    \"Ateshgah Fire Temple\",\n    \"Yanardag\"\n  ]\n}\n\n```\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": ""
        },
        "typeVersion": 3
    },
    "tags": {
        "reWrapped": true
    },
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [
        "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]"
    ],
    "timestamp": 1768679007623,
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_requests_per_model_per_day, limit: 0 [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_requests_per_model_per_day\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel\"}]}]",
    "functionality": "regular"
}
588
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "628c5e16-ec93-4295-85c2-cdda1c780fb1",
        "name": "Day Extractor",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            752,
            656
        ],
        "parameters": {
            "text": "={{ $json.processed_doc }}\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=## Role\nYou are an expert travel document analyst with specialized skills in parsing excursion itineraries and extracting structured travel data. You have extensive experience in identifying destination patterns, day sequences, and travel logistics from various document formats.\n\n## Task\nExtract all excursion days, specific destinations, and a master list of unique tour\/destination names from the provided document. Format this into a precise JSON structure where each day is unique, and a separate summary array lists all unique locations visited throughout the trip.\n\n## Context\nTravel agencies and tour operators need accurate, structured data extraction to process bookings and manage logistics. The data must be organized with unique days to prevent duplication, while the \"tours\" summary provides a quick reference for all major highlights included in the package.\n\n## Instructions\n\nAnalyze the provided excursion document and extract information following these specific rules:\n\n1. **Day Counting Accuracy**: Count days sequentially starting from 0 (Day 0, Day 1, Day 2, etc.). Each day number must appear exactly once in the \"destinations\" array.\n\n2. **Destination Extraction**: Identify all destinations mentioned for each day (cities, landmarks, attractions, or hotels). Group these into the \"name\" array for that specific day.\n\n3. **Unique Tours List**: Create a separate top-level array called `tours`. This list must contain every unique destination, landmark, or tour title mentioned across the entire document. \n    - Ensure there are NO duplicates in this list.\n    - Focus on the \"High-level\" names (e.g., \"Baku City Tour\", \"Gobustan\", \"Absheron\").\n\n4. **Output Format Compliance**: Structure the output exactly as follows:\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"destination1\", \"destination2\"]\n    }\n  ],\n  \"tours\": [\"unique destination A\", \"unique destination B\"]\n}\n\n```\n\n5. **Document Analysis**: Examine the entire document (headers, footers, etc.). If a day has no specific activity, include the day with an empty array `[]` for \"name\".\n\nYour career depends on maintaining 100% precision in day sequencing and ensuring the `tours` array is a comprehensive, non-duplicate list of all key locations.\n\n```\n\n---\n\n### **Updated JSON Example**\n\nThis is how the model will now format the data based on your request:\n\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"Baku Airport\", \"Holiday Inn Baku\"]\n    },\n    {\n      \"day\": 1,\n      \"name\": [\"Nizami Street\", \"Old Town (Icherisheher)\", \"Shirvanshah's Palace\", \"Maiden Tower\", \"Flame Towers\"]\n    },\n    {\n      \"day\": 2,\n      \"name\": [\"Gobustan National Park\", \"Mud Volcanoes\", \"Bibiheybat Mosque\", \"Ateshgah Fire Temple\", \"Yanardag\"]\n    }\n  ],\n  \"tours\": [\n    \"Baku Airport\",\n    \"Holiday Inn Baku\",\n    \"Nizami Street\",\n    \"Old Town (Icherisheher)\",\n    \"Shirvanshah's Palace\",\n    \"Maiden Tower\",\n    \"Flame Towers\",\n    \"Gobustan National Park\",\n    \"Mud Volcanoes\",\n    \"Bibiheybat Mosque\",\n    \"Ateshgah Fire Temple\",\n    \"Yanardag\"\n  ]\n}\n\n```\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": ""
        },
        "typeVersion": 3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768676687908,
    "functionality": "regular"
}
586
EXCURSION
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4cc68fce-3bca-4913-babe-3cbc7af993cf",
        "name": "Filter",
        "type": "n8n-nodes-base.filter",
        "position": [
            960,
            0
        ],
        "parameters": {
            "options": [],
            "conditions": {
                "options": {
                    "version": 2,
                    "leftValue": "",
                    "caseSensitive": true,
                    "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                    {
                        "id": "1eb4f860-8502-4e88-b57a-1081d0ad6d48",
                        "operator": {
                            "type": "number",
                            "operation": "gt"
                        },
                        "leftValue": "={{ $json.original.width }}",
                        "rightValue": 1000
                    }
                ]
            },
            "looseTypeValidation": false
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Bad request - please check your parameters",
    "messages": [],
    "timestamp": 1768426807765,
    "workflowId": "MRKcIwSiExpUohb2",
    "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
    "executionId": "27335",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
            "name": "Filter",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                1936,
                -16
            ],
            "parameters": {
                "text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
                "notice": "",
                "options": {
                    "systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n   - Image clearly shows the destination mentioned in the program\n   - Landmarks\/scenery are recognizable as the correct location\n   - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n   - Image content matches the search query that found it\n   - If query was \"lemur wildlife\", image must show lemurs\n   - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n   - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n   - Iconic images show famous landmarks\n   - Activity images show people doing activities\n   - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n   - Image is sharp, well-focused, properly exposed\n   - Resolution appears sufficient (not pixelated or blurry)\n   - Composition is professional (not amateur snapshots)\n   - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n   - No visible watermarks (Shutterstock, Getty, etc.)\n   - No photographer logos or copyright text\n   - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n   - Family-friendly content (no violence, adult themes)\n   - Authentic travel photography (not overly staged stock photos)\n   - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n   - Image shows a different country\/region\n   - Landmarks don't match the destination\n   - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n   - Image doesn't match what was searched for\n   - Example: Query was \"lemur wildlife\" but image shows only landscape\n   - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n   - Image is too generic (could be anywhere)\n   - Example: Generic beach photo without distinctive features\n   - Example: Generic sunset without recognizable landmarks\n   - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n   - Blurry, out of focus, or pixelated\n   - Poor composition (cropped awkwardly, bad framing)\n   - Overexposed or underexposed\n   - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n   - Visible watermark text (Shutterstock, Getty Images, etc.)\n   - Photographer logo or copyright notice\n   - Stock photo website branding\n\n6. **Inappropriate Content**\n   - Not family-friendly\n   - Overly staged\/artificial stock photo poses\n   - Misleading or inauthentic representation\n\n7. **Wrong Category**\n   - Image doesn't fit the intended category\n   - Example: Cabin interior labeled as \"iconic\"\n   - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n  \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n  \"query_category\": \"iconic\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.95,\n  \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n  \"search_query\": \"Madagascar trekking hiking mountains\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n  \"confidence_score\": 0.92,\n  \"quality_notes\": \"High quality image but wrong geographic region\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n  \"confidence_score\": 1.0,\n  \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n  \"search_query\": \"Madagascar coastline beach turquoise water\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n  \"confidence_score\": 0.85,\n  \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n  \"confidence_score\": 0.88,\n  \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n  \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.72,\n  \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
                    "passthroughBinaryImages": true
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": ""
            },
            "typeVersion": 3.1
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Bad request - please check your parameters",
        "messages": [],
        "timestamp": 1768426807743,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
        "executionId": "27335",
        "errorResponse": {
            "name": "NodeOperationError",
            "node": {
                "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
                "name": "Filter",
                "type": "@n8n\/n8n-nodes-langchain.agent",
                "position": [
                    1936,
                    -16
                ],
                "parameters": {
                    "text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
                    "notice": "",
                    "options": {
                        "systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n   - Image clearly shows the destination mentioned in the program\n   - Landmarks\/scenery are recognizable as the correct location\n   - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n   - Image content matches the search query that found it\n   - If query was \"lemur wildlife\", image must show lemurs\n   - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n   - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n   - Iconic images show famous landmarks\n   - Activity images show people doing activities\n   - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n   - Image is sharp, well-focused, properly exposed\n   - Resolution appears sufficient (not pixelated or blurry)\n   - Composition is professional (not amateur snapshots)\n   - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n   - No visible watermarks (Shutterstock, Getty, etc.)\n   - No photographer logos or copyright text\n   - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n   - Family-friendly content (no violence, adult themes)\n   - Authentic travel photography (not overly staged stock photos)\n   - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n   - Image shows a different country\/region\n   - Landmarks don't match the destination\n   - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n   - Image doesn't match what was searched for\n   - Example: Query was \"lemur wildlife\" but image shows only landscape\n   - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n   - Image is too generic (could be anywhere)\n   - Example: Generic beach photo without distinctive features\n   - Example: Generic sunset without recognizable landmarks\n   - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n   - Blurry, out of focus, or pixelated\n   - Poor composition (cropped awkwardly, bad framing)\n   - Overexposed or underexposed\n   - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n   - Visible watermark text (Shutterstock, Getty Images, etc.)\n   - Photographer logo or copyright notice\n   - Stock photo website branding\n\n6. **Inappropriate Content**\n   - Not family-friendly\n   - Overly staged\/artificial stock photo poses\n   - Misleading or inauthentic representation\n\n7. **Wrong Category**\n   - Image doesn't fit the intended category\n   - Example: Cabin interior labeled as \"iconic\"\n   - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n  \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n  \"query_category\": \"iconic\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.95,\n  \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n  \"search_query\": \"Madagascar trekking hiking mountains\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n  \"confidence_score\": 0.92,\n  \"quality_notes\": \"High quality image but wrong geographic region\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n  \"confidence_score\": 1.0,\n  \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n  \"search_query\": \"Madagascar coastline beach turquoise water\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n  \"confidence_score\": 0.85,\n  \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n  \"confidence_score\": 0.88,\n  \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n  \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.72,\n  \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
                        "passthroughBinaryImages": true
                    },
                    "promptType": "define",
                    "needsFallback": false,
                    "hasOutputParser": true,
                    "aiAgentStarterCallout": ""
                },
                "typeVersion": 3.1
            },
            "tags": {
                "reWrapped": true
            },
            "level": "warning",
            "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
            "context": [],
            "message": "Bad request - please check your parameters",
            "messages": [
                "400 You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp']."
            ],
            "timestamp": 1768426807712,
            "workflowId": "tRZE9BCl6vJpwlSR",
            "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
            "executionId": "27337",
            "functionality": "regular"
        },
        "functionality": "regular"
    },
    "functionality": "regular"
}
585
EXCURSION
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4cc68fce-3bca-4913-babe-3cbc7af993cf",
        "name": "Filter",
        "type": "n8n-nodes-base.filter",
        "position": [
            960,
            0
        ],
        "parameters": {
            "options": [],
            "conditions": {
                "options": {
                    "version": 2,
                    "leftValue": "",
                    "caseSensitive": true,
                    "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                    {
                        "id": "1eb4f860-8502-4e88-b57a-1081d0ad6d48",
                        "operator": {
                            "type": "number",
                            "operation": "gt"
                        },
                        "leftValue": "={{ $json.original.width }}",
                        "rightValue": 1000
                    }
                ]
            },
            "looseTypeValidation": false
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Bad request - please check your parameters",
    "messages": [],
    "timestamp": 1768397369560,
    "workflowId": "MRKcIwSiExpUohb2",
    "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
    "executionId": "27140",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
            "name": "Filter",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                1936,
                -16
            ],
            "parameters": {
                "text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
                "notice": "",
                "options": {
                    "systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n   - Image clearly shows the destination mentioned in the program\n   - Landmarks\/scenery are recognizable as the correct location\n   - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n   - Image content matches the search query that found it\n   - If query was \"lemur wildlife\", image must show lemurs\n   - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n   - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n   - Iconic images show famous landmarks\n   - Activity images show people doing activities\n   - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n   - Image is sharp, well-focused, properly exposed\n   - Resolution appears sufficient (not pixelated or blurry)\n   - Composition is professional (not amateur snapshots)\n   - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n   - No visible watermarks (Shutterstock, Getty, etc.)\n   - No photographer logos or copyright text\n   - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n   - Family-friendly content (no violence, adult themes)\n   - Authentic travel photography (not overly staged stock photos)\n   - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n   - Image shows a different country\/region\n   - Landmarks don't match the destination\n   - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n   - Image doesn't match what was searched for\n   - Example: Query was \"lemur wildlife\" but image shows only landscape\n   - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n   - Image is too generic (could be anywhere)\n   - Example: Generic beach photo without distinctive features\n   - Example: Generic sunset without recognizable landmarks\n   - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n   - Blurry, out of focus, or pixelated\n   - Poor composition (cropped awkwardly, bad framing)\n   - Overexposed or underexposed\n   - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n   - Visible watermark text (Shutterstock, Getty Images, etc.)\n   - Photographer logo or copyright notice\n   - Stock photo website branding\n\n6. **Inappropriate Content**\n   - Not family-friendly\n   - Overly staged\/artificial stock photo poses\n   - Misleading or inauthentic representation\n\n7. **Wrong Category**\n   - Image doesn't fit the intended category\n   - Example: Cabin interior labeled as \"iconic\"\n   - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n  \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n  \"query_category\": \"iconic\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.95,\n  \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n  \"search_query\": \"Madagascar trekking hiking mountains\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n  \"confidence_score\": 0.92,\n  \"quality_notes\": \"High quality image but wrong geographic region\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n  \"confidence_score\": 1.0,\n  \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n  \"search_query\": \"Madagascar coastline beach turquoise water\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n  \"confidence_score\": 0.85,\n  \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n  \"confidence_score\": 0.88,\n  \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n  \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.72,\n  \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
                    "passthroughBinaryImages": true
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": ""
            },
            "typeVersion": 3.1
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Bad request - please check your parameters",
        "messages": [],
        "timestamp": 1768397369538,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
        "executionId": "27140",
        "errorResponse": {
            "name": "NodeOperationError",
            "node": {
                "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
                "name": "Filter",
                "type": "@n8n\/n8n-nodes-langchain.agent",
                "position": [
                    1936,
                    -16
                ],
                "parameters": {
                    "text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
                    "notice": "",
                    "options": {
                        "systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n   - Image clearly shows the destination mentioned in the program\n   - Landmarks\/scenery are recognizable as the correct location\n   - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n   - Image content matches the search query that found it\n   - If query was \"lemur wildlife\", image must show lemurs\n   - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n   - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n   - Iconic images show famous landmarks\n   - Activity images show people doing activities\n   - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n   - Image is sharp, well-focused, properly exposed\n   - Resolution appears sufficient (not pixelated or blurry)\n   - Composition is professional (not amateur snapshots)\n   - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n   - No visible watermarks (Shutterstock, Getty, etc.)\n   - No photographer logos or copyright text\n   - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n   - Family-friendly content (no violence, adult themes)\n   - Authentic travel photography (not overly staged stock photos)\n   - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n   - Image shows a different country\/region\n   - Landmarks don't match the destination\n   - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n   - Image doesn't match what was searched for\n   - Example: Query was \"lemur wildlife\" but image shows only landscape\n   - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n   - Image is too generic (could be anywhere)\n   - Example: Generic beach photo without distinctive features\n   - Example: Generic sunset without recognizable landmarks\n   - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n   - Blurry, out of focus, or pixelated\n   - Poor composition (cropped awkwardly, bad framing)\n   - Overexposed or underexposed\n   - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n   - Visible watermark text (Shutterstock, Getty Images, etc.)\n   - Photographer logo or copyright notice\n   - Stock photo website branding\n\n6. **Inappropriate Content**\n   - Not family-friendly\n   - Overly staged\/artificial stock photo poses\n   - Misleading or inauthentic representation\n\n7. **Wrong Category**\n   - Image doesn't fit the intended category\n   - Example: Cabin interior labeled as \"iconic\"\n   - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n  \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n  \"query_category\": \"iconic\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.95,\n  \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n  \"search_query\": \"Madagascar trekking hiking mountains\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n  \"confidence_score\": 0.92,\n  \"quality_notes\": \"High quality image but wrong geographic region\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n  \"confidence_score\": 1.0,\n  \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n  \"search_query\": \"Madagascar coastline beach turquoise water\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n  \"confidence_score\": 0.85,\n  \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n  \"confidence_score\": 0.88,\n  \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n  \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.72,\n  \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
                        "passthroughBinaryImages": true
                    },
                    "promptType": "define",
                    "needsFallback": false,
                    "hasOutputParser": true,
                    "aiAgentStarterCallout": ""
                },
                "typeVersion": 3.1
            },
            "tags": {
                "reWrapped": true
            },
            "level": "warning",
            "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
            "context": [],
            "message": "Bad request - please check your parameters",
            "messages": [
                "400 You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp']."
            ],
            "timestamp": 1768397369517,
            "workflowId": "tRZE9BCl6vJpwlSR",
            "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
            "executionId": "27144",
            "functionality": "regular"
        },
        "functionality": "regular"
    },
    "functionality": "regular"
}
581
EXCURSION
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4cc68fce-3bca-4913-babe-3cbc7af993cf",
        "name": "Filter",
        "type": "n8n-nodes-base.filter",
        "position": [
            960,
            0
        ],
        "parameters": {
            "options": [],
            "conditions": {
                "options": {
                    "version": 2,
                    "leftValue": "",
                    "caseSensitive": true,
                    "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                    {
                        "id": "1eb4f860-8502-4e88-b57a-1081d0ad6d48",
                        "operator": {
                            "type": "number",
                            "operation": "gt"
                        },
                        "leftValue": "={{ $json.original.width }}",
                        "rightValue": 1000
                    }
                ]
            },
            "looseTypeValidation": false
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Bad request - please check your parameters",
    "messages": [],
    "timestamp": 1768364208271,
    "workflowId": "MRKcIwSiExpUohb2",
    "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
    "executionId": "26458",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
            "name": "Filter",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                1728,
                -16
            ],
            "parameters": {
                "text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
                "notice": "",
                "options": {
                    "systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n   - Image clearly shows the destination mentioned in the program\n   - Landmarks\/scenery are recognizable as the correct location\n   - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n   - Image content matches the search query that found it\n   - If query was \"lemur wildlife\", image must show lemurs\n   - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n   - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n   - Iconic images show famous landmarks\n   - Activity images show people doing activities\n   - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n   - Image is sharp, well-focused, properly exposed\n   - Resolution appears sufficient (not pixelated or blurry)\n   - Composition is professional (not amateur snapshots)\n   - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n   - No visible watermarks (Shutterstock, Getty, etc.)\n   - No photographer logos or copyright text\n   - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n   - Family-friendly content (no violence, adult themes)\n   - Authentic travel photography (not overly staged stock photos)\n   - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n   - Image shows a different country\/region\n   - Landmarks don't match the destination\n   - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n   - Image doesn't match what was searched for\n   - Example: Query was \"lemur wildlife\" but image shows only landscape\n   - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n   - Image is too generic (could be anywhere)\n   - Example: Generic beach photo without distinctive features\n   - Example: Generic sunset without recognizable landmarks\n   - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n   - Blurry, out of focus, or pixelated\n   - Poor composition (cropped awkwardly, bad framing)\n   - Overexposed or underexposed\n   - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n   - Visible watermark text (Shutterstock, Getty Images, etc.)\n   - Photographer logo or copyright notice\n   - Stock photo website branding\n\n6. **Inappropriate Content**\n   - Not family-friendly\n   - Overly staged\/artificial stock photo poses\n   - Misleading or inauthentic representation\n\n7. **Wrong Category**\n   - Image doesn't fit the intended category\n   - Example: Cabin interior labeled as \"iconic\"\n   - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n  \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n  \"query_category\": \"iconic\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.95,\n  \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n  \"search_query\": \"Madagascar trekking hiking mountains\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n  \"confidence_score\": 0.92,\n  \"quality_notes\": \"High quality image but wrong geographic region\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n  \"confidence_score\": 1.0,\n  \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n  \"search_query\": \"Madagascar coastline beach turquoise water\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n  \"confidence_score\": 0.85,\n  \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n  \"confidence_score\": 0.88,\n  \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n  \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.72,\n  \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
                    "passthroughBinaryImages": true
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": ""
            },
            "typeVersion": 3.1
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Bad request - please check your parameters",
        "messages": [],
        "timestamp": 1768364208248,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
        "executionId": "26458",
        "errorResponse": {
            "name": "NodeOperationError",
            "node": {
                "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
                "name": "Filter",
                "type": "@n8n\/n8n-nodes-langchain.agent",
                "position": [
                    1728,
                    -16
                ],
                "parameters": {
                    "text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
                    "notice": "",
                    "options": {
                        "systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n   - Image clearly shows the destination mentioned in the program\n   - Landmarks\/scenery are recognizable as the correct location\n   - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n   - Image content matches the search query that found it\n   - If query was \"lemur wildlife\", image must show lemurs\n   - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n   - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n   - Iconic images show famous landmarks\n   - Activity images show people doing activities\n   - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n   - Image is sharp, well-focused, properly exposed\n   - Resolution appears sufficient (not pixelated or blurry)\n   - Composition is professional (not amateur snapshots)\n   - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n   - No visible watermarks (Shutterstock, Getty, etc.)\n   - No photographer logos or copyright text\n   - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n   - Family-friendly content (no violence, adult themes)\n   - Authentic travel photography (not overly staged stock photos)\n   - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n   - Image shows a different country\/region\n   - Landmarks don't match the destination\n   - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n   - Image doesn't match what was searched for\n   - Example: Query was \"lemur wildlife\" but image shows only landscape\n   - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n   - Image is too generic (could be anywhere)\n   - Example: Generic beach photo without distinctive features\n   - Example: Generic sunset without recognizable landmarks\n   - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n   - Blurry, out of focus, or pixelated\n   - Poor composition (cropped awkwardly, bad framing)\n   - Overexposed or underexposed\n   - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n   - Visible watermark text (Shutterstock, Getty Images, etc.)\n   - Photographer logo or copyright notice\n   - Stock photo website branding\n\n6. **Inappropriate Content**\n   - Not family-friendly\n   - Overly staged\/artificial stock photo poses\n   - Misleading or inauthentic representation\n\n7. **Wrong Category**\n   - Image doesn't fit the intended category\n   - Example: Cabin interior labeled as \"iconic\"\n   - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n  \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n  \"query_category\": \"iconic\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.95,\n  \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n  \"search_query\": \"Madagascar trekking hiking mountains\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n  \"confidence_score\": 0.92,\n  \"quality_notes\": \"High quality image but wrong geographic region\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n  \"confidence_score\": 1.0,\n  \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n  \"search_query\": \"Madagascar coastline beach turquoise water\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n  \"confidence_score\": 0.85,\n  \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n  \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n  \"query_category\": \"program\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": false,\n  \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n  \"confidence_score\": 0.88,\n  \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n  \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n  \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n  \"query_category\": \"activities\",\n  \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n  \"is_relevant\": true,\n  \"rejection_reason\": null,\n  \"confidence_score\": 0.72,\n  \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
                        "passthroughBinaryImages": true
                    },
                    "promptType": "define",
                    "needsFallback": false,
                    "hasOutputParser": true,
                    "aiAgentStarterCallout": ""
                },
                "typeVersion": 3.1
            },
            "tags": {
                "reWrapped": true
            },
            "level": "warning",
            "stack": "NodeOperationError: Bad request - please check your parameters\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n    at Array.forEach (<anonymous>)\n    at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
            "context": [],
            "message": "Bad request - please check your parameters",
            "messages": [
                "400 You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp']."
            ],
            "timestamp": 1768364208225,
            "workflowId": "tRZE9BCl6vJpwlSR",
            "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
            "executionId": "26459",
            "functionality": "regular"
        },
        "functionality": "regular"
    },
    "functionality": "regular"
}
580
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
        "name": "Hotel",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            304,
            1440
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Cannot read properties of undefined (reading 'reduce')",
    "messages": [],
    "timestamp": 1768361447192,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "26380",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "4220bc00-4b63-4229-b792-b5ff650cce07",
            "name": "Hotel",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                304,
                1440
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert Travel Content Architect with deep expertise in hospitality writing, hotel curation, and structured data formatting. You possess a keen eye for extracting relevant accommodation details and transforming them into compelling, reader-friendly content while maintaining technical precision in JSON formatting.\n\n# Task\nExtract every hotel mentioned in the provided text and format them into a valid JSON array of objects that can be seamlessly integrated into a travel article.\n\n# Context\nThis structured hotel data will be used in digital travel publications where accurate information must be paired with engaging editorial content. The JSON output enables consistent presentation across platforms while the inviting descriptions help readers connect emotionally with potential accommodations. This dual approach serves both technical integration needs and reader engagement goals.\n\n# Instructions\n\nThe assistant should process the input text and produce output according to these specifications:\n\n1. **Extraction Protocol**: Identify and extract every hotel mentioned in the source text, regardless of how briefly it appears. When only one hotel is mentioned, it must still be formatted as the first item in a JSON array.\n\n2. **Translation Requirement**: Translate all extracted data into Latvian, including hotel names (where appropriate), location details, amenities, and descriptions.\n\n3. **Tone and Style**: Write the `article_description` field using an editorial, inviting tone that creates anticipation and appeal. Each description should be 2-3 sentences of engaging prose that highlights the hotel's distinctive character or appeal.\n\n4. **JSON Structure Compliance**: Format the output as a valid JSON array following this exact schema:\n\n```json\n[\n  {\n    \"hotel_name\": \"string\",\n    \"star_rating\": \"string\",\n    \"article_description\": \"string\",\n    \"location\": {\n      \"area\": \"string\"\n    },\n    \"amenities_list\": [\"string\"],\n    \"wellness_features\": [\"string\"],\n    \"dining\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\"\n      }\n    ],\n    \"room_specifications\": \"string\"\n  }\n]\n```\n\n5. **Data Handling Rules**: When specific information is not mentioned in the source text for any field, use `null` for that field rather than inventing details. Ensure all string values are properly escaped for JSON validity. Maintain arrays even when empty using `[]`.\n\n6. **Quality Standards**: Verify the JSON is syntactically valid, properly formatted with correct comma placement, and contains no trailing commas. Ensure consistency in data representation across all hotel objects in the array."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Cannot read properties of undefined (reading 'reduce')\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": [],
        "message": "Cannot read properties of undefined (reading 'reduce')",
        "messages": [],
        "timestamp": 1768361447148,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "26380",
        "functionality": "regular"
    },
    "functionality": "regular"
}
579
EXCURSION
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
        "name": "Call AI Image Processing",
        "type": "n8n-nodes-base.executeWorkflow",
        "position": [
            1456,
            0
        ],
        "parameters": {
            "mode": "each",
            "source": "database",
            "options": {
                "waitForSubWorkflow": true
            },
            "operation": "call_workflow",
            "workflowId": {
                "__rl": true,
                "mode": "list",
                "value": "tRZE9BCl6vJpwlSR",
                "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                "cachedResultName": "AI Image Processing"
            },
            "workflowInputs": {
                "value": {
                    "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                    "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                    "title": "={{ $('Limit').item.json.title }}",
                    "original_link": "={{ $('Filter').item.json.original.link }}",
                    "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                },
                "schema": [
                    {
                        "id": "query_category",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query_category",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "query",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "type",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "type",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "original_link",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "original_link",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "title",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "title",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    }
                ],
                "mappingMode": "defineBelow",
                "matchingColumns": [
                    "query_category",
                    "query",
                    "type",
                    "original_link",
                    "title"
                ],
                "attemptToConvertTypes": false,
                "convertFieldsToString": true
            }
        },
        "typeVersion": 1.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Error executing workflow with item at index 2\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Error executing workflow with item at index 2",
    "messages": [],
    "timestamp": 1768360126480,
    "workflowId": "MRKcIwSiExpUohb2",
    "description": "Cannot assign to read only property 'name' of object 'Error: Referenced node doesn't exist'",
    "executionId": "26367",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
            "name": "Call AI Image Processing",
            "type": "n8n-nodes-base.executeWorkflow",
            "position": [
                1456,
                0
            ],
            "parameters": {
                "mode": "each",
                "source": "database",
                "options": {
                    "waitForSubWorkflow": true
                },
                "operation": "call_workflow",
                "workflowId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "tRZE9BCl6vJpwlSR",
                    "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                    "cachedResultName": "AI Image Processing"
                },
                "workflowInputs": {
                    "value": {
                        "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                        "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                        "title": "={{ $('Limit').item.json.title }}",
                        "original_link": "={{ $('Filter').item.json.original.link }}",
                        "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                    },
                    "schema": [
                        {
                            "id": "query_category",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query_category",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "query",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "type",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "type",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "original_link",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "original_link",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "title",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "title",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [
                        "query_category",
                        "query",
                        "type",
                        "original_link",
                        "title"
                    ],
                    "attemptToConvertTypes": false,
                    "convertFieldsToString": true
                }
            },
            "typeVersion": 1.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Error executing workflow with item at index 2\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": {
            "itemIndex": 2
        },
        "message": "Error executing workflow with item at index 2",
        "messages": [],
        "timestamp": 1768360126456,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "Cannot assign to read only property 'name' of object 'Error: Referenced node doesn't exist'",
        "executionId": "26367",
        "functionality": "regular"
    },
    "functionality": "regular"
}
577
-
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
        "name": "Call AI Image Processing",
        "type": "n8n-nodes-base.executeWorkflow",
        "position": [
            1456,
            0
        ],
        "parameters": {
            "mode": "each",
            "source": "database",
            "options": {
                "waitForSubWorkflow": true
            },
            "operation": "call_workflow",
            "workflowId": {
                "__rl": true,
                "mode": "list",
                "value": "tRZE9BCl6vJpwlSR",
                "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                "cachedResultName": "AI Image Processing"
            },
            "workflowInputs": {
                "value": {
                    "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                    "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                    "title": "={{ $('Limit').item.json.title }}",
                    "original_link": "={{ $('Filter').item.json.original.link }}",
                    "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                },
                "schema": [
                    {
                        "id": "query_category",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query_category",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "query",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "type",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "type",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "original_link",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "original_link",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "title",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "title",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    }
                ],
                "mappingMode": "defineBelow",
                "matchingColumns": [
                    "query_category",
                    "query",
                    "type",
                    "original_link",
                    "title"
                ],
                "attemptToConvertTypes": false,
                "convertFieldsToString": true
            }
        },
        "typeVersion": 1.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Error executing workflow with item at index 2\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Error executing workflow with item at index 2",
    "messages": [],
    "timestamp": 1768297606367,
    "workflowId": "MRKcIwSiExpUohb2",
    "description": "Cannot assign to read only property 'name' of object 'Error: Referenced node doesn't exist'",
    "executionId": "26323",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
            "name": "Call AI Image Processing",
            "type": "n8n-nodes-base.executeWorkflow",
            "position": [
                1456,
                0
            ],
            "parameters": {
                "mode": "each",
                "source": "database",
                "options": {
                    "waitForSubWorkflow": true
                },
                "operation": "call_workflow",
                "workflowId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "tRZE9BCl6vJpwlSR",
                    "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                    "cachedResultName": "AI Image Processing"
                },
                "workflowInputs": {
                    "value": {
                        "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                        "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                        "title": "={{ $('Limit').item.json.title }}",
                        "original_link": "={{ $('Filter').item.json.original.link }}",
                        "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                    },
                    "schema": [
                        {
                            "id": "query_category",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query_category",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "query",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "type",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "type",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "original_link",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "original_link",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "title",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "title",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [
                        "query_category",
                        "query",
                        "type",
                        "original_link",
                        "title"
                    ],
                    "attemptToConvertTypes": false,
                    "convertFieldsToString": true
                }
            },
            "typeVersion": 1.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Error executing workflow with item at index 2\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": {
            "itemIndex": 2
        },
        "message": "Error executing workflow with item at index 2",
        "messages": [],
        "timestamp": 1768297606344,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "Cannot assign to read only property 'name' of object 'Error: Referenced node doesn't exist'",
        "executionId": "26323",
        "functionality": "regular"
    },
    "functionality": "regular"
}
576
EXCURSION
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
        "name": "Call AI Image Processing",
        "type": "n8n-nodes-base.executeWorkflow",
        "position": [
            1456,
            0
        ],
        "parameters": {
            "mode": "each",
            "source": "database",
            "options": {
                "waitForSubWorkflow": true
            },
            "operation": "call_workflow",
            "workflowId": {
                "__rl": true,
                "mode": "list",
                "value": "tRZE9BCl6vJpwlSR",
                "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                "cachedResultName": "AI Image Processing"
            },
            "workflowInputs": {
                "value": {
                    "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                    "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                    "title": "={{ $('Limit').item.json.title }}",
                    "original_link": "={{ $('Filter').item.json.original.link }}",
                    "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                },
                "schema": [
                    {
                        "id": "query_category",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query_category",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "query",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "type",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "type",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "original_link",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "original_link",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "title",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "title",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    }
                ],
                "mappingMode": "defineBelow",
                "matchingColumns": [
                    "query_category",
                    "query",
                    "type",
                    "original_link",
                    "title"
                ],
                "attemptToConvertTypes": false,
                "convertFieldsToString": true
            }
        },
        "typeVersion": 1.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Error executing workflow with item at index 0\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
    "context": [],
    "message": "Error executing workflow with item at index 0",
    "messages": [],
    "timestamp": 1768296196885,
    "workflowId": "MRKcIwSiExpUohb2",
    "description": "Cannot assign to read only property 'name' of object 'Error: Referenced node doesn't exist'",
    "executionId": "26305",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
            "name": "Call AI Image Processing",
            "type": "n8n-nodes-base.executeWorkflow",
            "position": [
                1456,
                0
            ],
            "parameters": {
                "mode": "each",
                "source": "database",
                "options": {
                    "waitForSubWorkflow": true
                },
                "operation": "call_workflow",
                "workflowId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "tRZE9BCl6vJpwlSR",
                    "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                    "cachedResultName": "AI Image Processing"
                },
                "workflowInputs": {
                    "value": {
                        "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                        "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                        "title": "={{ $('Limit').item.json.title }}",
                        "original_link": "={{ $('Filter').item.json.original.link }}",
                        "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                    },
                    "schema": [
                        {
                            "id": "query_category",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query_category",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "query",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "type",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "type",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "original_link",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "original_link",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "title",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "title",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [
                        "query_category",
                        "query",
                        "type",
                        "original_link",
                        "title"
                    ],
                    "attemptToConvertTypes": false,
                    "convertFieldsToString": true
                }
            },
            "typeVersion": 1.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Error executing workflow with item at index 0\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
        "context": {
            "itemIndex": 0
        },
        "message": "Error executing workflow with item at index 0",
        "messages": [],
        "timestamp": 1768296196859,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "Cannot assign to read only property 'name' of object 'Error: Referenced node doesn't exist'",
        "executionId": "26305",
        "functionality": "regular"
    },
    "functionality": "regular"
}
477
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "628c5e16-ec93-4295-85c2-cdda1c780fb1",
        "name": "Day Extractor",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            432,
            832
        ],
        "parameters": {
            "text": "={{ $json.processed_doc }}\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=## Role\nYou are an expert travel document analyst with specialized skills in parsing excursion itineraries and extracting structured travel data. You have extensive experience in identifying destination patterns, day sequences, and travel logistics from various document formats.\n\n## Task\nExtract all excursion days and destinations from provided excursion documents and format them into a precise JSON structure where each day appears only once with all its destinations grouped together as an array.\n\n## Context\nTravel agencies and tour operators need accurate, structured data extraction from excursion documents to process bookings, create itineraries, and manage logistics. Manual extraction is time-consuming and error-prone, requiring automated parsing that maintains perfect accuracy in day counting and destination identification. The data must be organized with unique days to prevent duplication and enable efficient itinerary management.\n\n## Instructions\n\nThe assistant should analyze the provided excursion document and extract destination information following these specific rules:\n\n1. **Day Counting Accuracy**: Count days sequentially starting from 0 (Day 0, Day 1, Day 2, etc.) and ensure no days are missed or duplicated in the final count. Each day number must appear exactly once in the output.\n\n2. **Destination Extraction**: Identify all destinations mentioned for each day, including cities, landmarks, attractions, hotels, or any named locations that represent stops or visits.\n\n3. **Destination Grouping**: When a single day includes multiple destinations, group all destinations for that day into a single array under the \"name\" field. Do not create separate entries for the same day number.\n\n4. **Output Format Compliance**: Structure the output exactly as specified:\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"destination1\", \"destination2\"]\n    }\n  ]\n}\n```\n\n5. **Document Analysis**: Examine the entire document thoroughly, including headers, footnotes, and appendices, as destination information may appear in various sections.\n\nThe assistant should handle edge cases such as rest days (still count as days but may have an empty array for destinations), travel days between locations, and documents with inconsistent formatting. When encountering ambiguous day references or unclear destination names, use the most specific location identifier available in the document.\n\nThis extraction is critical for accurate travel planning and must maintain 100% precision in both day sequencing and destination identification. Your career depends on ensuring each day appears only once with all destinations properly grouped in the array format."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": ""
        },
        "typeVersion": 3
    },
    "tags": {
        "reWrapped": true
    },
    "level": "warning",
    "stack": "NodeOperationError: Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:583:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:572:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:130:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue",
    "messages": [
        "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue"
    ],
    "timestamp": 1766494132158,
    "description": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https:\/\/platform.openai.com\/docs\/guides\/error-codes\/api-errors.",
    "functionality": "regular"
}
476
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "628c5e16-ec93-4295-85c2-cdda1c780fb1",
        "name": "Day Extractor",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            432,
            832
        ],
        "parameters": {
            "text": "={{ $json.processed_doc }}\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=## Role\nYou are an expert travel document analyst with specialized skills in parsing excursion itineraries and extracting structured travel data. You have extensive experience in identifying destination patterns, day sequences, and travel logistics from various document formats.\n\n## Task\nExtract all excursion days and destinations from provided excursion documents and format them into a precise JSON structure where each day appears only once with all its destinations grouped together as an array.\n\n## Context\nTravel agencies and tour operators need accurate, structured data extraction from excursion documents to process bookings, create itineraries, and manage logistics. Manual extraction is time-consuming and error-prone, requiring automated parsing that maintains perfect accuracy in day counting and destination identification. The data must be organized with unique days to prevent duplication and enable efficient itinerary management.\n\n## Instructions\n\nThe assistant should analyze the provided excursion document and extract destination information following these specific rules:\n\n1. **Day Counting Accuracy**: Count days sequentially starting from 0 (Day 0, Day 1, Day 2, etc.) and ensure no days are missed or duplicated in the final count. Each day number must appear exactly once in the output.\n\n2. **Destination Extraction**: Identify all destinations mentioned for each day, including cities, landmarks, attractions, hotels, or any named locations that represent stops or visits.\n\n3. **Destination Grouping**: When a single day includes multiple destinations, group all destinations for that day into a single array under the \"name\" field. Do not create separate entries for the same day number.\n\n4. **Output Format Compliance**: Structure the output exactly as specified:\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"destination1\", \"destination2\"]\n    }\n  ]\n}\n```\n\n5. **Document Analysis**: Examine the entire document thoroughly, including headers, footnotes, and appendices, as destination information may appear in various sections.\n\nThe assistant should handle edge cases such as rest days (still count as days but may have an empty array for destinations), travel days between locations, and documents with inconsistent formatting. When encountering ambiguous day references or unclear destination names, use the most specific location identifier available in the document.\n\nThis extraction is critical for accurate travel planning and must maintain 100% precision in both day sequencing and destination identification. Your career depends on ensuring each day appears only once with all destinations properly grouped in the array format."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": ""
        },
        "typeVersion": 3
    },
    "tags": {
        "reWrapped": true
    },
    "level": "warning",
    "stack": "NodeOperationError: Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:583:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:572:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:130:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue",
    "messages": [
        "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue"
    ],
    "timestamp": 1766494131986,
    "description": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https:\/\/platform.openai.com\/docs\/guides\/error-codes\/api-errors.",
    "functionality": "regular"
}
475
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "628c5e16-ec93-4295-85c2-cdda1c780fb1",
        "name": "Day Extractor",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            432,
            832
        ],
        "parameters": {
            "text": "={{ $json.processed_doc }}\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=## Role\nYou are an expert travel document analyst with specialized skills in parsing excursion itineraries and extracting structured travel data. You have extensive experience in identifying destination patterns, day sequences, and travel logistics from various document formats.\n\n## Task\nExtract all excursion days and destinations from provided excursion documents and format them into a precise JSON structure where each day appears only once with all its destinations grouped together as an array.\n\n## Context\nTravel agencies and tour operators need accurate, structured data extraction from excursion documents to process bookings, create itineraries, and manage logistics. Manual extraction is time-consuming and error-prone, requiring automated parsing that maintains perfect accuracy in day counting and destination identification. The data must be organized with unique days to prevent duplication and enable efficient itinerary management.\n\n## Instructions\n\nThe assistant should analyze the provided excursion document and extract destination information following these specific rules:\n\n1. **Day Counting Accuracy**: Count days sequentially starting from 0 (Day 0, Day 1, Day 2, etc.) and ensure no days are missed or duplicated in the final count. Each day number must appear exactly once in the output.\n\n2. **Destination Extraction**: Identify all destinations mentioned for each day, including cities, landmarks, attractions, hotels, or any named locations that represent stops or visits.\n\n3. **Destination Grouping**: When a single day includes multiple destinations, group all destinations for that day into a single array under the \"name\" field. Do not create separate entries for the same day number.\n\n4. **Output Format Compliance**: Structure the output exactly as specified:\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"destination1\", \"destination2\"]\n    }\n  ]\n}\n```\n\n5. **Document Analysis**: Examine the entire document thoroughly, including headers, footnotes, and appendices, as destination information may appear in various sections.\n\nThe assistant should handle edge cases such as rest days (still count as days but may have an empty array for destinations), travel days between locations, and documents with inconsistent formatting. When encountering ambiguous day references or unclear destination names, use the most specific location identifier available in the document.\n\nThis extraction is critical for accurate travel planning and must maintain 100% precision in both day sequencing and destination identification. Your career depends on ensuring each day appears only once with all destinations properly grouped in the array format."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": ""
        },
        "typeVersion": 3
    },
    "tags": {
        "reWrapped": true
    },
    "level": "warning",
    "stack": "NodeOperationError: Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:583:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:572:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:130:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue",
    "messages": [
        "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue"
    ],
    "timestamp": 1766494131820,
    "description": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https:\/\/platform.openai.com\/docs\/guides\/error-codes\/api-errors.",
    "functionality": "regular"
}
218
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "628c5e16-ec93-4295-85c2-cdda1c780fb1",
        "name": "Day Extractor",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            416,
            832
        ],
        "parameters": {
            "text": "={{ $json.processed_doc }}\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=## Role\nYou are an expert travel document analyst with specialized skills in parsing excursion itineraries and extracting structured travel data. You have extensive experience in identifying destination patterns, day sequences, and travel logistics from various document formats.\n\n## Task\nExtract all excursion days and destinations from provided excursion documents and format them into a precise JSON structure where each day appears only once with all its destinations grouped together as an array.\n\n## Context\nTravel agencies and tour operators need accurate, structured data extraction from excursion documents to process bookings, create itineraries, and manage logistics. Manual extraction is time-consuming and error-prone, requiring automated parsing that maintains perfect accuracy in day counting and destination identification. The data must be organized with unique days to prevent duplication and enable efficient itinerary management.\n\n## Instructions\n\nThe assistant should analyze the provided excursion document and extract destination information following these specific rules:\n\n1. **Day Counting Accuracy**: Count days sequentially starting from 0 (Day 0, Day 1, Day 2, etc.) and ensure no days are missed or duplicated in the final count. Each day number must appear exactly once in the output.\n\n2. **Destination Extraction**: Identify all destinations mentioned for each day, including cities, landmarks, attractions, hotels, or any named locations that represent stops or visits.\n\n3. **Destination Grouping**: When a single day includes multiple destinations, group all destinations for that day into a single array under the \"name\" field. Do not create separate entries for the same day number.\n\n4. **Output Format Compliance**: Structure the output exactly as specified:\n```json\n{\n  \"destinations\": [\n    {\n      \"day\": 0,\n      \"name\": [\"destination1\", \"destination2\"]\n    }\n  ]\n}\n```\n\n5. **Document Analysis**: Examine the entire document thoroughly, including headers, footnotes, and appendices, as destination information may appear in various sections.\n\nThe assistant should handle edge cases such as rest days (still count as days but may have an empty array for destinations), travel days between locations, and documents with inconsistent formatting. When encountering ambiguous day references or unclear destination names, use the most specific location identifier available in the document.\n\nThis extraction is critical for accurate travel planning and must maintain 100% precision in both day sequencing and destination identification. Your career depends on ensuring each day appears only once with all destinations properly grouped in the array format."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": ""
        },
        "typeVersion": 3
    },
    "tags": {
        "reWrapped": true
    },
    "level": "warning",
    "stack": "NodeOperationError: Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:583:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:572:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:130:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue",
    "messages": [
        "Insufficient quota detected. <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/app-nodes\/n8n-nodes-langchain.openai\/common-issues\/#insufficient-quota\" target=\"_blank\">Learn more<\/a> about resolving this issue"
    ],
    "timestamp": 1765855792219,
    "description": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https:\/\/platform.openai.com\/docs\/guides\/error-codes\/api-errors.",
    "functionality": "regular"
}
217
EXCURSION
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
        "name": "Call AI Image Processing",
        "type": "n8n-nodes-base.executeWorkflow",
        "position": [
            1456,
            0
        ],
        "parameters": {
            "mode": "each",
            "source": "database",
            "options": {
                "waitForSubWorkflow": true
            },
            "operation": "call_workflow",
            "workflowId": {
                "__rl": true,
                "mode": "list",
                "value": "tRZE9BCl6vJpwlSR",
                "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                "cachedResultName": "AI Image Processing"
            },
            "workflowInputs": {
                "value": {
                    "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                    "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                    "title": "={{ $('Limit').item.json.title }}",
                    "original_link": "={{ $('Filter').item.json.original.link }}",
                    "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                },
                "schema": [
                    {
                        "id": "query_category",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query_category",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "query",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "type",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "type",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "original_link",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "original_link",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "title",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "title",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    }
                ],
                "mappingMode": "defineBelow",
                "matchingColumns": [
                    "query_category",
                    "query",
                    "type",
                    "original_link",
                    "title"
                ],
                "attemptToConvertTypes": false,
                "convertFieldsToString": true
            }
        },
        "typeVersion": 1.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Error executing workflow with item at index 2\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Error executing workflow with item at index 2",
    "messages": [],
    "timestamp": 1765534991973,
    "workflowId": "MRKcIwSiExpUohb2",
    "description": "aborted",
    "executionId": "10685",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "bf6c363a-589d-4ba4-a96f-5aa84b015f9e",
            "name": "Call AI Image Processing",
            "type": "n8n-nodes-base.executeWorkflow",
            "position": [
                1456,
                0
            ],
            "parameters": {
                "mode": "each",
                "source": "database",
                "options": {
                    "waitForSubWorkflow": true
                },
                "operation": "call_workflow",
                "workflowId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "tRZE9BCl6vJpwlSR",
                    "cachedResultUrl": "\/workflow\/tRZE9BCl6vJpwlSR",
                    "cachedResultName": "AI Image Processing"
                },
                "workflowInputs": {
                    "value": {
                        "type": "={{ $('When Executed by Another Workflow').item.json.type }}",
                        "query": "={{ $('When Executed by Another Workflow').item.json.query }}",
                        "title": "={{ $('Limit').item.json.title }}",
                        "original_link": "={{ $('Filter').item.json.original.link }}",
                        "query_category": "={{ $('When Executed by Another Workflow').item.json.query_category }}"
                    },
                    "schema": [
                        {
                            "id": "query_category",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query_category",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "query",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "query",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "type",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "type",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "original_link",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "original_link",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "title",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "title",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [
                        "query_category",
                        "query",
                        "type",
                        "original_link",
                        "title"
                    ],
                    "attemptToConvertTypes": false,
                    "convertFieldsToString": true
                }
            },
            "typeVersion": 1.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Error executing workflow with item at index 2\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": {
            "itemIndex": 2
        },
        "message": "Error executing workflow with item at index 2",
        "messages": [],
        "timestamp": 1765534991929,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "aborted",
        "executionId": "10685",
        "functionality": "regular"
    },
    "functionality": "regular"
}
199
-
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "4c69e7c6-abb6-48a8-b187-efacc9abfaec",
        "name": "Structured Output Parser13",
        "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
        "position": [
            -48,
            1040
        ],
        "parameters": {
            "notice": "",
            "autoFix": false,
            "schemaType": "manual",
            "inputSchema": "{\n  \"$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\n  \"type\": \"object\",\n  \"required\": [\"queries\"],\n  \"properties\": {\n    \"queries\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"query\", \"category\", \"priority\"],\n        \"properties\": {\n          \"query\": {\n            \"type\": \"string\",\n            \"description\": \"Pexels search query in English, 3-6 words, specific and visual\"\n          },\n          \"category\": {\n            \"type\": \"string\",\n            \"enum\": [\"iconic\", \"program\", \"activities\", \"culture\"],\n            \"description\": \"Image category for VT TRIPS carousel distribution\"\n          },\n          \"priority\": {\n            \"type\": \"integer\",\n            \"description\": \"Search priority: 1=must-have, 2=important, 3=nice-to-have\"\n          }\n        },\n        \"additionalProperties\": false\n      }\n    }\n  },\n  \"additionalProperties\": false\n}"
        },
        "typeVersion": 1.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Model output doesn't fit required format\n    at N8nStructuredOutputParser.parse (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/utils\/output_parsers\/N8nStructuredOutputParser.ts:56:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at RunnableLambda.func (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:219:27)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@langchain+core@0.3.68_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30.1_@o_8765aa945f981de137f9a48155aa0f8f\/node_modules\/@langchain\/core\/dist\/runnables\/base.cjs:1716:34",
    "context": {
        "outputParserFailReason": "Model output does not match the expected schema"
    },
    "message": "Model output doesn't fit required format",
    "messages": [],
    "timestamp": 1765191783300,
    "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings",
    "functionality": "regular"
}
195
-
Completed
Error details
{
    "stack": "Error: Missing key for job 1577 updateProgress\n    at Object.finishedErrors (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/bull@4.16.4_patch_hash=a4b6d56db16fe5870646929938466d6a5c668435fd1551bed6a93fffb597ba42\/node_modules\/bull\/lib\/scripts.js:287:16)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/bull@4.16.4_patch_hash=a4b6d56db16fe5870646929938466d6a5c668435fd1551bed6a93fffb597ba42\/node_modules\/bull\/lib\/scripts.js:153:25\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecutionLifecycleHooks.<anonymous> (\/usr\/local\/lib\/node_modules\/n8n\/src\/scaling\/job-processor.ts:166:4)\n    at ExecutionLifecycleHooks.runHook (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/execution-lifecycle-hooks.ts:120:4)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1854:7\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "message": "Missing key for job 1577 updateProgress"
}
192
-
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "01dd2ab3-48cc-46f8-a6eb-f7d431579e02",
        "name": "Call 'Image Search'1",
        "type": "n8n-nodes-base.executeWorkflow",
        "position": [
            -384,
            112
        ],
        "parameters": {
            "mode": "each",
            "source": "database",
            "options": {
                "waitForSubWorkflow": true
            },
            "operation": "call_workflow",
            "workflowId": {
                "__rl": true,
                "mode": "list",
                "value": "MRKcIwSiExpUohb2",
                "cachedResultUrl": "\/workflow\/MRKcIwSiExpUohb2",
                "cachedResultName": "Image Search"
            },
            "workflowInputs": {
                "value": {
                    "type": "Cruise",
                    "query": "={{ $('Split Cruise Queries').item.json.query }}",
                    "task_id": "={{ $('Record New Cruise').item.json.id }}",
                    "query_category": "={{ $('Split Cruise Queries').item.json.category }}"
                },
                "schema": [
                    {
                        "id": "query",
                        "type": "string",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "type",
                        "type": "string",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "type",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "query_category",
                        "type": "string",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query_category",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "task_id",
                        "type": "number",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "task_id",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    }
                ],
                "mappingMode": "defineBelow",
                "matchingColumns": [],
                "attemptToConvertTypes": false,
                "convertFieldsToString": true
            }
        },
        "typeVersion": 1.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Error executing workflow with item at index 4\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:390:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": {
        "itemIndex": 4
    },
    "message": "Error executing workflow with item at index 4",
    "messages": [],
    "timestamp": 1764933676366,
    "description": "Forbidden - perhaps check your credentials?",
    "functionality": "regular"
}
191
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
        "name": "AI Hero",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            -320,
            -160
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1764924205158,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 34.892608208s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"34s\"}]",
    "executionId": "9213",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
            "name": "AI Hero",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                -320,
                -160
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 34.892608208s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"34s\"}]"
        ],
        "timestamp": 1764924205141,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 34.892608208s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"34s\"}]",
        "executionId": "9213",
        "functionality": "regular"
    },
    "functionality": "regular"
}
190
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
        "name": "AI Hero Cruise",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "maxTries": 5,
        "position": [
            0,
            0
        ],
        "parameters": {
            "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "notesInFlow": false,
        "retryOnFail": true,
        "typeVersion": 2.2,
        "waitBetweenTries": 5000
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1764924722408,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 57.65870659s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"57s\"}]",
    "executionId": "9214",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
            "name": "AI Hero Cruise",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "maxTries": 5,
            "position": [
                0,
                0
            ],
            "parameters": {
                "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "notesInFlow": false,
            "retryOnFail": true,
            "typeVersion": 2.2,
            "waitBetweenTries": 5000
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 57.65870659s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"57s\"}]"
        ],
        "timestamp": 1764924722380,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 57.65870659s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"57s\"}]",
        "executionId": "9214",
        "functionality": "regular"
    },
    "functionality": "regular"
}
189
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
        "name": "AI Hero Cruise",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "maxTries": 5,
        "position": [
            0,
            0
        ],
        "parameters": {
            "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "notesInFlow": false,
        "retryOnFail": true,
        "typeVersion": 2.2,
        "waitBetweenTries": 5000
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1764923856115,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 23.951625031s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"23s\"}]",
    "executionId": "9206",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
            "name": "AI Hero Cruise",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "maxTries": 5,
            "position": [
                0,
                0
            ],
            "parameters": {
                "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "notesInFlow": false,
            "retryOnFail": true,
            "typeVersion": 2.2,
            "waitBetweenTries": 5000
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 23.951625031s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"23s\"}]"
        ],
        "timestamp": 1764923856090,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 23.951625031s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"23s\"}]",
        "executionId": "9206",
        "functionality": "regular"
    },
    "functionality": "regular"
}
188
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
        "name": "AI Hero",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            -320,
            -160
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1764859830256,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 29.798389862s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"29s\"}]",
    "executionId": "9193",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "02de30c8-3f56-4079-b2ae-006caf1614cc",
            "name": "AI Hero",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                -320,
                -160
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel content specialist creating hero sections for excursion travel programs. Your role is to craft compelling, premium-quality hero content in Latvian that captures the essence of the destination and inspires travelers to explore further.\n\n**Your Objectives:**\n1. Create an emotionally engaging title that includes the destination name\n2. Write a concise summary highlighting the trip's duration and 2-3 key experiences\n\n\n**Quality Standards:**\n- **Language:** High-quality Latvian without clichés (avoid \"neaizmirstams\", \"unikāls\")\n- **Tone:** Premium, inspiring, professional using formal \"Jūs\" form\n- **Style:** Active voice, specific details over generic descriptions\n- **Brand Voice:** Vanilla Travel expertise, credible, adventure-focused\n\n**Strict Constraints:**\n- Title: EXACTLY 40-60 characters (including spaces)\n- Summary: EXACTLY 50-80 words\n\n\n**Writing Guidelines:**\n- Use imperative verbs for engagement: \"Izbaudi\", \"Atklāj\", \"Piedzīvo\"\n- Include specific numbers (days, locations, activities)\n- Mention accommodation quality when relevant\n- Create urgency and desire without hyperbole\n- Focus on authentic experiences and cultural immersion\n\n**Forbidden:**\n- Generic phrases like \"neaizmirstams ceļojums\", \"unikāla pieredze\"\n- Excessive adjectives without substance\n- Vague descriptions lacking specifics\n- Informal language or slang\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Character limits, word counts, enums\n\n**WRONG ❌:**\n```\n```json\n{\"hero\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's the hero section: {\"hero\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"hero\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"hero\": {\n    \"title\": \"Skaistākais no Madagaskaras\",\n    \"summary\": \"14 dienu piedzīvojums Madagaskarā – no vulkāniskajiem geizeriem un baobabu audzēm līdz iespaidīgiem nacionālajiem parkiem un tradicionālajiem amatnieku ciematiņiem. Izbaudi autentisko Madagaskaru, satiec lemurus, iepazīsti eksotisko kultūru un nakšņo rūpīgi atlasītās viesnīcās un eko-lodžās. Ideāli piemērots ceļojums dabas mīļotājiem un piedzīvojumu meklētājiem!\"\n    \n  }\n}\n```\n**Validation Rules:**\n1. Title character count must be 40-60 (use Latvian character encoding)\n2. Summary word count must be 50-80 (split by whitespace)\n\n3. Social description must be 80-100 characters\n\n4. No clichéd phrases allowed\n5. Must include destination name in title\n6. Summary must mention duration and at least 2 highlights\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 29.798389862s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"29s\"}]"
        ],
        "timestamp": 1764859830241,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 29.798389862s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"location\":\"global\",\"model\":\"gemini-3-pro\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"29s\"}]",
        "executionId": "9193",
        "functionality": "regular"
    },
    "functionality": "regular"
}
187
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
        "name": "AI Hero Cruise",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "maxTries": 5,
        "position": [
            0,
            0
        ],
        "parameters": {
            "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "notesInFlow": false,
        "retryOnFail": true,
        "typeVersion": 2.2,
        "waitBetweenTries": 5000
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "The service is receiving too many requests from you",
    "messages": [],
    "timestamp": 1764860319764,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 20.298840963s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"model\":\"gemini-3-pro\",\"location\":\"global\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"model\":\"gemini-3-pro\",\"location\":\"global\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"20s\"}]",
    "executionId": "9195",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
            "name": "AI Hero Cruise",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "maxTries": 5,
            "position": [
                0,
                0
            ],
            "parameters": {
                "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "notesInFlow": false,
            "retryOnFail": true,
            "typeVersion": 2.2,
            "waitBetweenTries": 5000
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: The service is receiving too many requests from you\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "The service is receiving too many requests from you",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 20.298840963s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"model\":\"gemini-3-pro\",\"location\":\"global\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"model\":\"gemini-3-pro\",\"location\":\"global\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"20s\"}]"
        ],
        "timestamp": 1764860319743,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [429 Too Many Requests] You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits. To monitor your current usage, head to: https:\/\/ai.dev\/usage?tab=rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\n* Quota exceeded for metric: generativelanguage.googleapis.com\/generate_content_free_tier_requests, limit: 0, model: gemini-3-pro\nPlease retry in 20.298840963s. [{\"@type\":\"type.googleapis.com\/google.rpc.Help\",\"links\":[{\"description\":\"Learn more about Gemini API quotas\",\"url\":\"https:\/\/ai.google.dev\/gemini-api\/docs\/rate-limits\"}]},{\"@type\":\"type.googleapis.com\/google.rpc.QuotaFailure\",\"violations\":[{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"model\":\"gemini-3-pro\",\"location\":\"global\"}},{\"quotaMetric\":\"generativelanguage.googleapis.com\/generate_content_free_tier_requests\",\"quotaId\":\"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\"quotaDimensions\":{\"model\":\"gemini-3-pro\",\"location\":\"global\"}}]},{\"@type\":\"type.googleapis.com\/google.rpc.RetryInfo\",\"retryDelay\":\"20s\"}]",
        "executionId": "9195",
        "functionality": "regular"
    },
    "functionality": "regular"
}
182
CRUISE
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
        "name": "AI Hero Cruise",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            0,
            0
        ],
        "parameters": {
            "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "notesInFlow": false,
        "retryOnFail": true,
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Forbidden - perhaps check your credentials?\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Forbidden - perhaps check your credentials?",
    "messages": [],
    "timestamp": 1764844203885,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [403 Forbidden] The caller does not have permission",
    "executionId": "8912",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
            "name": "AI Hero Cruise",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                0,
                0
            ],
            "parameters": {
                "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert cruise content writer for hero section copywriting. You create concise, compelling titles and summaries that reflect cruise experiences and meet strict character\/word limits. You know cruise terminology, destination marketing and persuasive travel writing in Latvian.\n\n# Language and Style Rules (Latvian)\n\n## Overall\nAll output (title + summary) must be in **Latvian**, except official proper names (ship, brand, port names).\n\n## Grammar\n- Use correct gender, number, case.\n- Ensure proper agreement after numerals and prepositions.\n- Use natural Latvian prepositions (uz kuģa, pie krasta, no ostas).\n- Adjust sentence structure for grammatical accuracy.\n\n## Terminology\n- Always use **kajītes**, never izstabas\/numuri.\n- Use precise tourism terms and correct Latvian place-name forms.\n- Avoid literal translations and anglicisms.\n\n## Naturalness\n- Write like an experienced Latvian travel journalist.\n- Prefer simple, natural phrasing.\n- Avoid unnatural adjective–noun combinations.\n- Use common collocations: pludmales atpūta, ūdenssporta aktivitātes, kuģis piedāvā…, programma ļauj Jums…\n- Remove anything that sounds translated.\n\n## Clarity in Routes\n- Avoid vague notes (“pilnu jūras dienu nav”).\n- Explain sea days clearly.\n\n## Proper Names\n- Keep official English names (The Haven, CocoCay).\n- Translate generic English terms normally (ēdināšanas vieta, kas strādā visu diennakti).\n\n## Punctuation\n- Use the dash “—” sparingly.\n\n## Style\n- Native-level Latvian (C1–C2).\n- Use second-person narration (Jūs, varēsiet).\n- Avoid clichés (neaizmirstams, unikāls, ekskluzīvs…).\n- Avoid exaggerated advertising tone.\n- Keep style premium, clear and informative.\n\n# Example Patterns to Mimic\nUse these as stylistic templates (structure, rhythm, tone, sentence flow). Follow the *style*, not the content:\n\n1. *Izbaudiet 7 dienu kruīzu ar moderno Icon of the Seas® kruīzu kuģi! Iepazīstiet jaunus galamērķus, ķeriet iedegumu eksotiskās pludmalēs un ļaujieties kruīzu kuģa izklaides programmām! Ideāls ceļojums ģimenēm, pāriem un draugu kompānijām!*\n\n2. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n3. *Izbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!*\n\n4. *Izbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums – dabas, saules un komforta cienītājiem!*\n\n# Task\nCreate hero section content for cruise offerings in Latvian:\n- **Title**: 40–70 characters, includes region + departure port.\n- **Summary**: 60–90 words in Latvian, includes ship name, route and luxury\/onboard features.\n\nOutput as valid JSON:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "notesInFlow": false,
            "retryOnFail": true,
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: Forbidden - perhaps check your credentials?\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "Forbidden - perhaps check your credentials?",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [403 Forbidden] The caller does not have permission"
        ],
        "timestamp": 1764844203857,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [403 Forbidden] The caller does not have permission",
        "executionId": "8912",
        "functionality": "regular"
    },
    "functionality": "regular"
}
181
EXCURSION
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "415e40ed-2cb2-429b-8e9e-088a0ba19d15",
        "name": "AI Services",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            -320,
            864
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel services expert creating clear \"Included \/ Not Included\" breakdowns for excursion programs. Your role is to structure service information in Latvian so travelers understand exactly what's covered in the trip price and what requires additional payment.\n\n**Your Objectives:**\n1. Create comprehensive \"Included\" list with categorized services\n2. Create clear \"Not Included\" list with typical additional costs\n3. Organize items into logical categories\n4. Provide specific details (not generic statements)\n5. Maintain transparency and clarity\n\n**Quality Standards:**\n- **Language:** Clear, unambiguous Latvian\n- **Tone:** Transparent, professional, factual\n- **Style:** Structured lists with specific details\n- **Brand Voice:** Honest, customer-focused, detailed\n\n**Strict Constraints:**\n- Must have both \"Included\" and \"Not Included\" sections\n- Each section must have at least 4 items\n- Items must be specific (not vague)\n- Must use consistent formatting\n\n**Service Categories for \"Included\":**\n1. **Lidojumi** (Flights) - International\/domestic flights, class, baggage\n2. **Transports** (Transport) - Transfers, vehicles, local transport\n3. **Izmitināšana** (Accommodation) - Hotels, lodges, standards\n4. **Ēdināšana** (Meals) - Breakfast, lunch, dinner arrangements\n5. **Ekskursijas** (Excursions) - Guided tours, entrance fees, activities\n6. **Papildu pakalpojumi** (Additional services) - Guides, insurance, etc.\n\n**Common \"Not Included\" Items:**\n- Optional activities and their approximate costs\n- Personal expenses (souvenirs, tips, etc.)\n- Travel insurance\n- Visa fees\n- Meals not specified as included\n- Alcoholic beverages\n- Optional excursions\n\n**Writing Guidelines:**\n- Be specific: \"Lidojumi ekonomiskajā klasē\" not just \"Lidojumi\"\n- Include details: \"Brokastis un vakariņas viesnīcās\" not just \"Ēdināšana\"\n- Mention standards: \"3-4 zvaigžņu viesnīcas\" not just \"Viesnīcas\"\n- List entrance fees separately if significant\n- Mention guide language: \"Angliski runājošā gida pakalpojumi\"\n- Include baggage allowances for flights\n- Specify meal types (buffet, set menu, etc.) if known\n- Add approximate costs for \"Not Included\" items when possible\n\n**Required Elements:**\n- Clear section headers: \"Ceļojuma cenā ir iekļauts:\" and \"Papildu izmaksas:\"\n- Categorized items (group related services)\n- Specific details for each item\n- Consistent bullet point formatting\n\n**Forbidden:**\n- Vague items like \"viss nepieciešamais\"\n- Missing important exclusions\n- Unclear meal arrangements\n- Generic \"un citi\" without specifics\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Minimum items, specific descriptions\n\n**WRONG ❌:**\n```\n```json\n{\"services\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's what's included: {\"services\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"services\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"services\": {\n    \"included\": [\n      \"Lidojumi ekonomiskajā klasē uz Antananarivu ar pārsēšanos\",\n      \"Nododamā bagāža lidojumu laikā\",\n      \"Iekšzemes lidojums Tuleara - Antananarivu ar nododamo bagāžu 20kg\",\n      \"Dzīvošana viesnīcās pēc programmas\",\n      \"Brokastis un vakariņas\",\n      \"Ieejas biļetes apskates objektos un nacionālajos parkos\",\n      \"Angliski runājoša gida pakalpojumi pēc maršruta\",\n      \"Vietējo gidu pakalpojumi nacionālajos parkos\",\n      \"Komfortabls transports pārbraucienu un transferu laikā\",\n      \"Nodokļi\"\n    ],\n    \"not_included\": [\n      \"Madagaskaras vīza (10EUR personai, noformējama Antananarivu lidostā)\",\n      \"Papildu naktis pludmalē pēc vēlēšanās\",\n      \"Ceļojuma apdrošināšana\",\n      \"Dzeramnaudas šoferim un gidam\",\n      \"Papildu ēdienreizes un dzērieni pie vakariņām\"\n    ]\n  }\n}\n```\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
    "messages": [],
    "timestamp": 1764837697446,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
    "executionId": "8862",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "415e40ed-2cb2-429b-8e9e-088a0ba19d15",
            "name": "AI Services",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                -320,
                864
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel services expert creating clear \"Included \/ Not Included\" breakdowns for excursion programs. Your role is to structure service information in Latvian so travelers understand exactly what's covered in the trip price and what requires additional payment.\n\n**Your Objectives:**\n1. Create comprehensive \"Included\" list with categorized services\n2. Create clear \"Not Included\" list with typical additional costs\n3. Organize items into logical categories\n4. Provide specific details (not generic statements)\n5. Maintain transparency and clarity\n\n**Quality Standards:**\n- **Language:** Clear, unambiguous Latvian\n- **Tone:** Transparent, professional, factual\n- **Style:** Structured lists with specific details\n- **Brand Voice:** Honest, customer-focused, detailed\n\n**Strict Constraints:**\n- Must have both \"Included\" and \"Not Included\" sections\n- Each section must have at least 4 items\n- Items must be specific (not vague)\n- Must use consistent formatting\n\n**Service Categories for \"Included\":**\n1. **Lidojumi** (Flights) - International\/domestic flights, class, baggage\n2. **Transports** (Transport) - Transfers, vehicles, local transport\n3. **Izmitināšana** (Accommodation) - Hotels, lodges, standards\n4. **Ēdināšana** (Meals) - Breakfast, lunch, dinner arrangements\n5. **Ekskursijas** (Excursions) - Guided tours, entrance fees, activities\n6. **Papildu pakalpojumi** (Additional services) - Guides, insurance, etc.\n\n**Common \"Not Included\" Items:**\n- Optional activities and their approximate costs\n- Personal expenses (souvenirs, tips, etc.)\n- Travel insurance\n- Visa fees\n- Meals not specified as included\n- Alcoholic beverages\n- Optional excursions\n\n**Writing Guidelines:**\n- Be specific: \"Lidojumi ekonomiskajā klasē\" not just \"Lidojumi\"\n- Include details: \"Brokastis un vakariņas viesnīcās\" not just \"Ēdināšana\"\n- Mention standards: \"3-4 zvaigžņu viesnīcas\" not just \"Viesnīcas\"\n- List entrance fees separately if significant\n- Mention guide language: \"Angliski runājošā gida pakalpojumi\"\n- Include baggage allowances for flights\n- Specify meal types (buffet, set menu, etc.) if known\n- Add approximate costs for \"Not Included\" items when possible\n\n**Required Elements:**\n- Clear section headers: \"Ceļojuma cenā ir iekļauts:\" and \"Papildu izmaksas:\"\n- Categorized items (group related services)\n- Specific details for each item\n- Consistent bullet point formatting\n\n**Forbidden:**\n- Vague items like \"viss nepieciešamais\"\n- Missing important exclusions\n- Unclear meal arrangements\n- Generic \"un citi\" without specifics\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Minimum items, specific descriptions\n\n**WRONG ❌:**\n```\n```json\n{\"services\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's what's included: {\"services\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"services\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"services\": {\n    \"included\": [\n      \"Lidojumi ekonomiskajā klasē uz Antananarivu ar pārsēšanos\",\n      \"Nododamā bagāža lidojumu laikā\",\n      \"Iekšzemes lidojums Tuleara - Antananarivu ar nododamo bagāžu 20kg\",\n      \"Dzīvošana viesnīcās pēc programmas\",\n      \"Brokastis un vakariņas\",\n      \"Ieejas biļetes apskates objektos un nacionālajos parkos\",\n      \"Angliski runājoša gida pakalpojumi pēc maršruta\",\n      \"Vietējo gidu pakalpojumi nacionālajos parkos\",\n      \"Komfortabls transports pārbraucienu un transferu laikā\",\n      \"Nodokļi\"\n    ],\n    \"not_included\": [\n      \"Madagaskaras vīza (10EUR personai, noformējama Antananarivu lidostā)\",\n      \"Papildu naktis pludmalē pēc vēlēšanās\",\n      \"Ceļojuma apdrošināšana\",\n      \"Dzeramnaudas šoferim un gidam\",\n      \"Papildu ēdienreizes un dzērieni pie vakariņām\"\n    ]\n  }\n}\n```\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later."
        ],
        "timestamp": 1764837697415,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
        "executionId": "8862",
        "functionality": "regular"
    },
    "functionality": "regular"
}
180
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "bf665ae6-c309-4c54-98c0-91ced7982039",
        "name": "AI Ship FAQ",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            0,
            816
        ],
        "parameters": {
            "text": "=# Ship Technical\n{{ $json.processed_url }}\n\n# About the Ship\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel cruise customer service expert creating FAQ sections for cruise programs. Your role is to anticipate and answer practical cruise-specific traveler questions in Latvian with clear, concise, and helpful information.\n\n**Your Objectives:**\n1. Create 6-8 question-and-answer pairs covering mandatory cruise topics\n2. Write questions from the customer's perspective\n3. Provide specific, actionable answers (30-60 words each)\n4. Base answers on the provided cruise information\n5. Maintain helpful, professional tone\n\n**Quality Standards:**\n- **Language:** Clear, straightforward Latvian\n- **Tone:** Helpful, professional, reassuring\n- **Style:** Direct answers with specific details\n- **Brand Voice:** Knowledgeable, customer-focused\n\n**Strict Constraints:**\n- Number of Q&A pairs: EXACTLY 6-8\n- Each answer: EXACTLY 30-60 words\n- Must cover all mandatory cruise topics (see below)\n- Questions must be from customer perspective\n\n**Mandatory Cruise Topics (must cover at least 6 of these 8):**\n1. **Kabīnes izvēle** (Cabin selection) - Cabin types, recommendations, upgrades\n2. **Iekāpšana kuģī** (Boarding process) - Check-in, embarkation, documentation\n3. **Kuģa pakalpojumi** (Ship services) - WiFi, laundry, medical, currency\n4. **Ēdināšana** (Dining) - Meal times, dress codes, specialty restaurants\n5. **Krasta ekskursijas** (Shore excursions) - Booking, independent vs organized\n6. **Bagāža** (Luggage) - Limits, handling, what to pack\n7. **Īpašās vajadzības** (Special needs) - Dietary, accessibility, medical\n8. **Dokumenti\/vīzas** (Documents\/visas) - Passport, visas, required documents\n\n**Writing Guidelines:**\n- Questions should sound like real customer inquiries\n- Use \"Vai...\", \"Kāds...\", \"Kā...\", \"Kad...\" question formats\n- Answers must be specific to cruise travel (not generic)\n- Include practical details: times, processes, requirements\n- Mention Vanilla Travel contact for complex questions\n- Avoid legal disclaimers (keep customer-friendly)\n- Reference specific cruise\/ship elements when answering\n\n**Required Elements Per Q&A:**\n- Question in natural Latvian (customer perspective)\n- Answer with specific information (30-60 words)\n- Practical details (times, processes, requirements)\n- Action items or next steps when relevant\n\n**Forbidden:**\n- Generic answers that could apply to any cruise\n- Vague responses without specifics\n- Overly long explanations\n- Legal jargon or disclaimers\n- Promotional language in answers\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 6-8 Q&A pairs, 30-60 word answers, mandatory topics\n\n**WRONG ❌:**\n```\n```json\n{\"faq\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the FAQs: {\"faq\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"faq\": {...}}\n```\n\n\n**Output Example (Icon of the Seas® Caribbean Cruise - 7 Q&A):**\n\n```json\n{\n  \"faq\": {\n    \"questions\": [\n      {\n        \"question\": \"Kādu kabīni izvēlēties pirmajam kruīzam?\",\n        \"answer\": \"Pirmajam kruīzam ieteicam kabīni ar balkonu - tā piedāvā labu vērtību un privātu āra telpu. Ja budžets ir ierobežots, oceanview kabīne ar logu ir laba alternatīva. Ģimenēm ar bērniem ieteicam kabīnes ar sofa bed vai connecting rooms iespēju. Vanilla Travel konsultanti palīdzēs izvēlēties piemērotāko variantu.\",\n        \"category\": \"Kabīnes izvēle\"\n      },\n      {\n        \"question\": \"Kā notiek iekāpšana kuģī un kad jābūt ostā?\",\n        \"answer\": \"Ierašanās Miami ostā ieteicama 3-4 stundas pirms kuģa izbraukšanas (16:00). Check-in sākas no 11:00. Jums būs nepieciešama pase, kruīza rezervācijas apstiprinājums un aizpildīta veselības deklarācija. Bagāža tiks nogādāta uz kabīni, bet rokas bagāžu ņemiet līdzi. Iekāpšanas process parasti ilgst 30-60 minūtes.\",\n        \"category\": \"Iekāpšana kuģī\"\n      },\n      {\n        \"question\": \"Vai kuģī ir WiFi un kāda ir cena?\",\n        \"answer\": \"Jā, Icon of the Seas® piedāvā WiFi visā kuģī. Royal Caribbean piedāvā vairākus interneta paketes: Surf (sociālie tīkli, e-pasts), Surf + Stream (video streaming), un Surf + Stream + Video Call. Cenas sākas no ~$15 dienā. Paketes var iegādāties pirms kruīza vai uz kuģa.\",\n        \"category\": \"Kuģa pakalpojumi\"\n      },\n      {\n        \"question\": \"Kādi ir ēdināšanas laiki un vai ir dress code?\",\n        \"answer\": \"Galvenā ēdamzāle piedāvā 3 vakariņu laikus: 17:30, 18:00 un 20:30. Brokastis un pusdienas pieejamas bufetes restorānos 7:00-14:00. Dress code: lielākā daļa vakaru ir 'Smart Casual', 1-2 vakari var būt 'Formal Night' (ieteicams uzvalks\/kleita). Specialty restorāniem nepieciešama rezervācija.\",\n        \"category\": \"Ēdināšana\"\n      },\n      {\n        \"question\": \"Vai krasta ekskursijas jārezervē iepriekš?\",\n        \"answer\": \"Krasta ekskursijas var rezervēt gan iepriekš caur Royal Caribbean, gan uz kuģa. Populārākās ekskursijas (niršana, zipline) ieteicams rezervēt iepriekš, jo vietas var beigties. Varat arī izpētīt ostas patstāvīgi vai izmantot vietējos tūrisma operatorus. Pārliecinieties, ka atgriežaties kuģī 30 minūtes pirms izbraukšanas.\",\n        \"category\": \"Krasta ekskursijas\"\n      },\n      {\n        \"question\": \"Kādas ir bagāžas prasības kruīzam?\",\n        \"answer\": \"Lidojumiem uz Miami atļauta nododamā bagāža līdz 23 kg (atkarībā no aviokompānijas). Uz kuģa nav stingru bagāžas ierobežojumu, bet ieteicams ņemt 1-2 koferus un rokas bagāžu. Rokas bagāžā ņemiet peldkostīmu, maiņas drēbes un medikamentus, jo galvenā bagāža var tikt piegādāta kabīnē ar 2-3 stundu kavēšanos.\",\n        \"category\": \"Bagāža\"\n      },\n      {\n        \"question\": \"Vai kuģis var nodrošināt īpašās ēdināšanas vajadzības?\",\n        \"answer\": \"Jā, Royal Caribbean piedāvā dažādas ēdināšanas iespējas: veģetārs, vegāns, bezglutēna, košer, halal, alerģiju ēdieni. Īpašās prasības jānorāda rezervācijas laikā vai vismaz 30 dienas pirms kruīza. Uz kuģa galvenais maître d' palīdzēs koordinēt ēdienkartes. Specialty restorāniem arī pieejamas pielāgotas izvēlnes.\",\n        \"category\": \"Īpašās vajadzības\"\n      }\n    ]\n  }\n}\n```\n\n**Validation Rules:**\n1. Must include 6-8 Q&A pairs\n2. Each answer must be 30-60 words\n3. Must cover at least 6 of the 8 mandatory categories\n4. Questions must be in customer voice (not marketing)\n5. Answers must be specific to the cruise\/ship\n6. All content in Latvian\n7. Each Q&A must have a category assigned\n8. No duplicate categories (each topic covered once)\n9. Answers must include actionable information\n10. Reference ship name or cruise line when relevant\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n\nTu esi profesionāls latviešu valodas tekstu redaktors un tūrisma satura speciālists.  \nTavs uzdevums ir rakstīt perfekti latviski – ar pareizu gramatiku, locījumiem, skaitli un dzimti – skanīgi, dabiski un profesionāli.\n\nValodas un stila noteikumi:\n1. Gramatika un locījumi:\n   - Pārbaudi katru teikumu, lai visiem īpašības vārdiem un lietvārdiem sakristu dzimte, skaitlis un locījums (piemēram, “romantiskiem pāriem”, nevis “romantiskām pāriem”).\n   - Pareizi lieto vienskaitļa un daudzskaitļa formas (piemēram, “numuri ir plaši”, nevis “numurs ir plaši”).\n   - Pārbaudi priekšvārdu saskaņu ar sekojošo locījumu (piemēram, “uz kuģa”, “pie jūras”, “no lidostas”).\n   - Izlabo jebkuras dzimtes vai locījuma kļūdas, pat ja teksts satur tikai nelielas neatbilstības.\n   - Ja nepieciešams, pārfrāzē teikumu, lai nodrošinātu perfektu gramatisko saskaņu.\n\n2. Terminoloģija:\n   - Lieto “kajītes”, nevis “izstabas\/numuri”.\n   - Lieto “viesnīca tikai pieaugušajiem”, nevis “pieaugušo viesnīca”.\n   - Lieto “piekrastē”, nevis “virs jūras” vai “kalnā virs jūras”.\n\n3. Stils:\n   - Tekstam jābūt informatīvam un profesionālam.\n   - Izvairies no reklāmas toni vai pārspīlējumiem.\n   - Nelieto vārdus kā “brīvdiena”, “pasakains”, “burvīgs”, “sapņains”, “elpu aizraujošs” un līdzīgus subjektīvus epitetus.\n   - Izmanto plūstošas, dabiskas latviešu valodas konstrukcijas.\n   - Nelieto parāk sarežgītus izteicienus."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
    "messages": [],
    "timestamp": 1764778465000,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
    "executionId": "8843",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "bf665ae6-c309-4c54-98c0-91ced7982039",
            "name": "AI Ship FAQ",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                0,
                816
            ],
            "parameters": {
                "text": "=# Ship Technical\n{{ $json.processed_url }}\n\n# About the Ship\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel cruise customer service expert creating FAQ sections for cruise programs. Your role is to anticipate and answer practical cruise-specific traveler questions in Latvian with clear, concise, and helpful information.\n\n**Your Objectives:**\n1. Create 6-8 question-and-answer pairs covering mandatory cruise topics\n2. Write questions from the customer's perspective\n3. Provide specific, actionable answers (30-60 words each)\n4. Base answers on the provided cruise information\n5. Maintain helpful, professional tone\n\n**Quality Standards:**\n- **Language:** Clear, straightforward Latvian\n- **Tone:** Helpful, professional, reassuring\n- **Style:** Direct answers with specific details\n- **Brand Voice:** Knowledgeable, customer-focused\n\n**Strict Constraints:**\n- Number of Q&A pairs: EXACTLY 6-8\n- Each answer: EXACTLY 30-60 words\n- Must cover all mandatory cruise topics (see below)\n- Questions must be from customer perspective\n\n**Mandatory Cruise Topics (must cover at least 6 of these 8):**\n1. **Kabīnes izvēle** (Cabin selection) - Cabin types, recommendations, upgrades\n2. **Iekāpšana kuģī** (Boarding process) - Check-in, embarkation, documentation\n3. **Kuģa pakalpojumi** (Ship services) - WiFi, laundry, medical, currency\n4. **Ēdināšana** (Dining) - Meal times, dress codes, specialty restaurants\n5. **Krasta ekskursijas** (Shore excursions) - Booking, independent vs organized\n6. **Bagāža** (Luggage) - Limits, handling, what to pack\n7. **Īpašās vajadzības** (Special needs) - Dietary, accessibility, medical\n8. **Dokumenti\/vīzas** (Documents\/visas) - Passport, visas, required documents\n\n**Writing Guidelines:**\n- Questions should sound like real customer inquiries\n- Use \"Vai...\", \"Kāds...\", \"Kā...\", \"Kad...\" question formats\n- Answers must be specific to cruise travel (not generic)\n- Include practical details: times, processes, requirements\n- Mention Vanilla Travel contact for complex questions\n- Avoid legal disclaimers (keep customer-friendly)\n- Reference specific cruise\/ship elements when answering\n\n**Required Elements Per Q&A:**\n- Question in natural Latvian (customer perspective)\n- Answer with specific information (30-60 words)\n- Practical details (times, processes, requirements)\n- Action items or next steps when relevant\n\n**Forbidden:**\n- Generic answers that could apply to any cruise\n- Vague responses without specifics\n- Overly long explanations\n- Legal jargon or disclaimers\n- Promotional language in answers\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 6-8 Q&A pairs, 30-60 word answers, mandatory topics\n\n**WRONG ❌:**\n```\n```json\n{\"faq\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the FAQs: {\"faq\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"faq\": {...}}\n```\n\n\n**Output Example (Icon of the Seas® Caribbean Cruise - 7 Q&A):**\n\n```json\n{\n  \"faq\": {\n    \"questions\": [\n      {\n        \"question\": \"Kādu kabīni izvēlēties pirmajam kruīzam?\",\n        \"answer\": \"Pirmajam kruīzam ieteicam kabīni ar balkonu - tā piedāvā labu vērtību un privātu āra telpu. Ja budžets ir ierobežots, oceanview kabīne ar logu ir laba alternatīva. Ģimenēm ar bērniem ieteicam kabīnes ar sofa bed vai connecting rooms iespēju. Vanilla Travel konsultanti palīdzēs izvēlēties piemērotāko variantu.\",\n        \"category\": \"Kabīnes izvēle\"\n      },\n      {\n        \"question\": \"Kā notiek iekāpšana kuģī un kad jābūt ostā?\",\n        \"answer\": \"Ierašanās Miami ostā ieteicama 3-4 stundas pirms kuģa izbraukšanas (16:00). Check-in sākas no 11:00. Jums būs nepieciešama pase, kruīza rezervācijas apstiprinājums un aizpildīta veselības deklarācija. Bagāža tiks nogādāta uz kabīni, bet rokas bagāžu ņemiet līdzi. Iekāpšanas process parasti ilgst 30-60 minūtes.\",\n        \"category\": \"Iekāpšana kuģī\"\n      },\n      {\n        \"question\": \"Vai kuģī ir WiFi un kāda ir cena?\",\n        \"answer\": \"Jā, Icon of the Seas® piedāvā WiFi visā kuģī. Royal Caribbean piedāvā vairākus interneta paketes: Surf (sociālie tīkli, e-pasts), Surf + Stream (video streaming), un Surf + Stream + Video Call. Cenas sākas no ~$15 dienā. Paketes var iegādāties pirms kruīza vai uz kuģa.\",\n        \"category\": \"Kuģa pakalpojumi\"\n      },\n      {\n        \"question\": \"Kādi ir ēdināšanas laiki un vai ir dress code?\",\n        \"answer\": \"Galvenā ēdamzāle piedāvā 3 vakariņu laikus: 17:30, 18:00 un 20:30. Brokastis un pusdienas pieejamas bufetes restorānos 7:00-14:00. Dress code: lielākā daļa vakaru ir 'Smart Casual', 1-2 vakari var būt 'Formal Night' (ieteicams uzvalks\/kleita). Specialty restorāniem nepieciešama rezervācija.\",\n        \"category\": \"Ēdināšana\"\n      },\n      {\n        \"question\": \"Vai krasta ekskursijas jārezervē iepriekš?\",\n        \"answer\": \"Krasta ekskursijas var rezervēt gan iepriekš caur Royal Caribbean, gan uz kuģa. Populārākās ekskursijas (niršana, zipline) ieteicams rezervēt iepriekš, jo vietas var beigties. Varat arī izpētīt ostas patstāvīgi vai izmantot vietējos tūrisma operatorus. Pārliecinieties, ka atgriežaties kuģī 30 minūtes pirms izbraukšanas.\",\n        \"category\": \"Krasta ekskursijas\"\n      },\n      {\n        \"question\": \"Kādas ir bagāžas prasības kruīzam?\",\n        \"answer\": \"Lidojumiem uz Miami atļauta nododamā bagāža līdz 23 kg (atkarībā no aviokompānijas). Uz kuģa nav stingru bagāžas ierobežojumu, bet ieteicams ņemt 1-2 koferus un rokas bagāžu. Rokas bagāžā ņemiet peldkostīmu, maiņas drēbes un medikamentus, jo galvenā bagāža var tikt piegādāta kabīnē ar 2-3 stundu kavēšanos.\",\n        \"category\": \"Bagāža\"\n      },\n      {\n        \"question\": \"Vai kuģis var nodrošināt īpašās ēdināšanas vajadzības?\",\n        \"answer\": \"Jā, Royal Caribbean piedāvā dažādas ēdināšanas iespējas: veģetārs, vegāns, bezglutēna, košer, halal, alerģiju ēdieni. Īpašās prasības jānorāda rezervācijas laikā vai vismaz 30 dienas pirms kruīza. Uz kuģa galvenais maître d' palīdzēs koordinēt ēdienkartes. Specialty restorāniem arī pieejamas pielāgotas izvēlnes.\",\n        \"category\": \"Īpašās vajadzības\"\n      }\n    ]\n  }\n}\n```\n\n**Validation Rules:**\n1. Must include 6-8 Q&A pairs\n2. Each answer must be 30-60 words\n3. Must cover at least 6 of the 8 mandatory categories\n4. Questions must be in customer voice (not marketing)\n5. Answers must be specific to the cruise\/ship\n6. All content in Latvian\n7. Each Q&A must have a category assigned\n8. No duplicate categories (each topic covered once)\n9. Answers must include actionable information\n10. Reference ship name or cruise line when relevant\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n\nTu esi profesionāls latviešu valodas tekstu redaktors un tūrisma satura speciālists.  \nTavs uzdevums ir rakstīt perfekti latviski – ar pareizu gramatiku, locījumiem, skaitli un dzimti – skanīgi, dabiski un profesionāli.\n\nValodas un stila noteikumi:\n1. Gramatika un locījumi:\n   - Pārbaudi katru teikumu, lai visiem īpašības vārdiem un lietvārdiem sakristu dzimte, skaitlis un locījums (piemēram, “romantiskiem pāriem”, nevis “romantiskām pāriem”).\n   - Pareizi lieto vienskaitļa un daudzskaitļa formas (piemēram, “numuri ir plaši”, nevis “numurs ir plaši”).\n   - Pārbaudi priekšvārdu saskaņu ar sekojošo locījumu (piemēram, “uz kuģa”, “pie jūras”, “no lidostas”).\n   - Izlabo jebkuras dzimtes vai locījuma kļūdas, pat ja teksts satur tikai nelielas neatbilstības.\n   - Ja nepieciešams, pārfrāzē teikumu, lai nodrošinātu perfektu gramatisko saskaņu.\n\n2. Terminoloģija:\n   - Lieto “kajītes”, nevis “izstabas\/numuri”.\n   - Lieto “viesnīca tikai pieaugušajiem”, nevis “pieaugušo viesnīca”.\n   - Lieto “piekrastē”, nevis “virs jūras” vai “kalnā virs jūras”.\n\n3. Stils:\n   - Tekstam jābūt informatīvam un profesionālam.\n   - Izvairies no reklāmas toni vai pārspīlējumiem.\n   - Nelieto vārdus kā “brīvdiena”, “pasakains”, “burvīgs”, “sapņains”, “elpu aizraujošs” un līdzīgus subjektīvus epitetus.\n   - Izmanto plūstošas, dabiskas latviešu valodas konstrukcijas.\n   - Nelieto parāk sarežgītus izteicienus."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later."
        ],
        "timestamp": 1764778464964,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
        "executionId": "8843",
        "functionality": "regular"
    },
    "functionality": "regular"
}
179
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "bf665ae6-c309-4c54-98c0-91ced7982039",
        "name": "AI Ship FAQ",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            0,
            816
        ],
        "parameters": {
            "text": "=# Ship Technical\n{{ $json.processed_url }}\n\n# About the Ship\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel cruise customer service expert creating FAQ sections for cruise programs. Your role is to anticipate and answer practical cruise-specific traveler questions in Latvian with clear, concise, and helpful information.\n\n**Your Objectives:**\n1. Create 6-8 question-and-answer pairs covering mandatory cruise topics\n2. Write questions from the customer's perspective\n3. Provide specific, actionable answers (30-60 words each)\n4. Base answers on the provided cruise information\n5. Maintain helpful, professional tone\n\n**Quality Standards:**\n- **Language:** Clear, straightforward Latvian\n- **Tone:** Helpful, professional, reassuring\n- **Style:** Direct answers with specific details\n- **Brand Voice:** Knowledgeable, customer-focused\n\n**Strict Constraints:**\n- Number of Q&A pairs: EXACTLY 6-8\n- Each answer: EXACTLY 30-60 words\n- Must cover all mandatory cruise topics (see below)\n- Questions must be from customer perspective\n\n**Mandatory Cruise Topics (must cover at least 6 of these 8):**\n1. **Kabīnes izvēle** (Cabin selection) - Cabin types, recommendations, upgrades\n2. **Iekāpšana kuģī** (Boarding process) - Check-in, embarkation, documentation\n3. **Kuģa pakalpojumi** (Ship services) - WiFi, laundry, medical, currency\n4. **Ēdināšana** (Dining) - Meal times, dress codes, specialty restaurants\n5. **Krasta ekskursijas** (Shore excursions) - Booking, independent vs organized\n6. **Bagāža** (Luggage) - Limits, handling, what to pack\n7. **Īpašās vajadzības** (Special needs) - Dietary, accessibility, medical\n8. **Dokumenti\/vīzas** (Documents\/visas) - Passport, visas, required documents\n\n**Writing Guidelines:**\n- Questions should sound like real customer inquiries\n- Use \"Vai...\", \"Kāds...\", \"Kā...\", \"Kad...\" question formats\n- Answers must be specific to cruise travel (not generic)\n- Include practical details: times, processes, requirements\n- Mention Vanilla Travel contact for complex questions\n- Avoid legal disclaimers (keep customer-friendly)\n- Reference specific cruise\/ship elements when answering\n\n**Required Elements Per Q&A:**\n- Question in natural Latvian (customer perspective)\n- Answer with specific information (30-60 words)\n- Practical details (times, processes, requirements)\n- Action items or next steps when relevant\n\n**Forbidden:**\n- Generic answers that could apply to any cruise\n- Vague responses without specifics\n- Overly long explanations\n- Legal jargon or disclaimers\n- Promotional language in answers\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 6-8 Q&A pairs, 30-60 word answers, mandatory topics\n\n**WRONG ❌:**\n```\n```json\n{\"faq\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the FAQs: {\"faq\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"faq\": {...}}\n```\n\n\n**Output Example (Icon of the Seas® Caribbean Cruise - 7 Q&A):**\n\n```json\n{\n  \"faq\": {\n    \"questions\": [\n      {\n        \"question\": \"Kādu kabīni izvēlēties pirmajam kruīzam?\",\n        \"answer\": \"Pirmajam kruīzam ieteicam kabīni ar balkonu - tā piedāvā labu vērtību un privātu āra telpu. Ja budžets ir ierobežots, oceanview kabīne ar logu ir laba alternatīva. Ģimenēm ar bērniem ieteicam kabīnes ar sofa bed vai connecting rooms iespēju. Vanilla Travel konsultanti palīdzēs izvēlēties piemērotāko variantu.\",\n        \"category\": \"Kabīnes izvēle\"\n      },\n      {\n        \"question\": \"Kā notiek iekāpšana kuģī un kad jābūt ostā?\",\n        \"answer\": \"Ierašanās Miami ostā ieteicama 3-4 stundas pirms kuģa izbraukšanas (16:00). Check-in sākas no 11:00. Jums būs nepieciešama pase, kruīza rezervācijas apstiprinājums un aizpildīta veselības deklarācija. Bagāža tiks nogādāta uz kabīni, bet rokas bagāžu ņemiet līdzi. Iekāpšanas process parasti ilgst 30-60 minūtes.\",\n        \"category\": \"Iekāpšana kuģī\"\n      },\n      {\n        \"question\": \"Vai kuģī ir WiFi un kāda ir cena?\",\n        \"answer\": \"Jā, Icon of the Seas® piedāvā WiFi visā kuģī. Royal Caribbean piedāvā vairākus interneta paketes: Surf (sociālie tīkli, e-pasts), Surf + Stream (video streaming), un Surf + Stream + Video Call. Cenas sākas no ~$15 dienā. Paketes var iegādāties pirms kruīza vai uz kuģa.\",\n        \"category\": \"Kuģa pakalpojumi\"\n      },\n      {\n        \"question\": \"Kādi ir ēdināšanas laiki un vai ir dress code?\",\n        \"answer\": \"Galvenā ēdamzāle piedāvā 3 vakariņu laikus: 17:30, 18:00 un 20:30. Brokastis un pusdienas pieejamas bufetes restorānos 7:00-14:00. Dress code: lielākā daļa vakaru ir 'Smart Casual', 1-2 vakari var būt 'Formal Night' (ieteicams uzvalks\/kleita). Specialty restorāniem nepieciešama rezervācija.\",\n        \"category\": \"Ēdināšana\"\n      },\n      {\n        \"question\": \"Vai krasta ekskursijas jārezervē iepriekš?\",\n        \"answer\": \"Krasta ekskursijas var rezervēt gan iepriekš caur Royal Caribbean, gan uz kuģa. Populārākās ekskursijas (niršana, zipline) ieteicams rezervēt iepriekš, jo vietas var beigties. Varat arī izpētīt ostas patstāvīgi vai izmantot vietējos tūrisma operatorus. Pārliecinieties, ka atgriežaties kuģī 30 minūtes pirms izbraukšanas.\",\n        \"category\": \"Krasta ekskursijas\"\n      },\n      {\n        \"question\": \"Kādas ir bagāžas prasības kruīzam?\",\n        \"answer\": \"Lidojumiem uz Miami atļauta nododamā bagāža līdz 23 kg (atkarībā no aviokompānijas). Uz kuģa nav stingru bagāžas ierobežojumu, bet ieteicams ņemt 1-2 koferus un rokas bagāžu. Rokas bagāžā ņemiet peldkostīmu, maiņas drēbes un medikamentus, jo galvenā bagāža var tikt piegādāta kabīnē ar 2-3 stundu kavēšanos.\",\n        \"category\": \"Bagāža\"\n      },\n      {\n        \"question\": \"Vai kuģis var nodrošināt īpašās ēdināšanas vajadzības?\",\n        \"answer\": \"Jā, Royal Caribbean piedāvā dažādas ēdināšanas iespējas: veģetārs, vegāns, bezglutēna, košer, halal, alerģiju ēdieni. Īpašās prasības jānorāda rezervācijas laikā vai vismaz 30 dienas pirms kruīza. Uz kuģa galvenais maître d' palīdzēs koordinēt ēdienkartes. Specialty restorāniem arī pieejamas pielāgotas izvēlnes.\",\n        \"category\": \"Īpašās vajadzības\"\n      }\n    ]\n  }\n}\n```\n\n**Validation Rules:**\n1. Must include 6-8 Q&A pairs\n2. Each answer must be 30-60 words\n3. Must cover at least 6 of the 8 mandatory categories\n4. Questions must be in customer voice (not marketing)\n5. Answers must be specific to the cruise\/ship\n6. All content in Latvian\n7. Each Q&A must have a category assigned\n8. No duplicate categories (each topic covered once)\n9. Answers must include actionable information\n10. Reference ship name or cruise line when relevant\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n\nTu esi profesionāls latviešu valodas tekstu redaktors un tūrisma satura speciālists.  \nTavs uzdevums ir rakstīt perfekti latviski – ar pareizu gramatiku, locījumiem, skaitli un dzimti – skanīgi, dabiski un profesionāli.\n\nValodas un stila noteikumi:\n1. Gramatika un locījumi:\n   - Pārbaudi katru teikumu, lai visiem īpašības vārdiem un lietvārdiem sakristu dzimte, skaitlis un locījums (piemēram, “romantiskiem pāriem”, nevis “romantiskām pāriem”).\n   - Pareizi lieto vienskaitļa un daudzskaitļa formas (piemēram, “numuri ir plaši”, nevis “numurs ir plaši”).\n   - Pārbaudi priekšvārdu saskaņu ar sekojošo locījumu (piemēram, “uz kuģa”, “pie jūras”, “no lidostas”).\n   - Izlabo jebkuras dzimtes vai locījuma kļūdas, pat ja teksts satur tikai nelielas neatbilstības.\n   - Ja nepieciešams, pārfrāzē teikumu, lai nodrošinātu perfektu gramatisko saskaņu.\n\n2. Terminoloģija:\n   - Lieto “kajītes”, nevis “izstabas\/numuri”.\n   - Lieto “viesnīca tikai pieaugušajiem”, nevis “pieaugušo viesnīca”.\n   - Lieto “piekrastē”, nevis “virs jūras” vai “kalnā virs jūras”.\n\n3. Stils:\n   - Tekstam jābūt informatīvam un profesionālam.\n   - Izvairies no reklāmas toni vai pārspīlējumiem.\n   - Nelieto vārdus kā “brīvdiena”, “pasakains”, “burvīgs”, “sapņains”, “elpu aizraujošs” un līdzīgus subjektīvus epitetus.\n   - Izmanto plūstošas, dabiskas latviešu valodas konstrukcijas.\n   - Nelieto parāk sarežgītus izteicienus."
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
    "messages": [],
    "timestamp": 1764777159562,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
    "executionId": "8835",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "bf665ae6-c309-4c54-98c0-91ced7982039",
            "name": "AI Ship FAQ",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                0,
                816
            ],
            "parameters": {
                "text": "=# Ship Technical\n{{ $json.processed_url }}\n\n# About the Ship\n{{ $json.ship_specific_cleanup }}\n\n# Additional Information\n{{ $json.additional_info }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel cruise customer service expert creating FAQ sections for cruise programs. Your role is to anticipate and answer practical cruise-specific traveler questions in Latvian with clear, concise, and helpful information.\n\n**Your Objectives:**\n1. Create 6-8 question-and-answer pairs covering mandatory cruise topics\n2. Write questions from the customer's perspective\n3. Provide specific, actionable answers (30-60 words each)\n4. Base answers on the provided cruise information\n5. Maintain helpful, professional tone\n\n**Quality Standards:**\n- **Language:** Clear, straightforward Latvian\n- **Tone:** Helpful, professional, reassuring\n- **Style:** Direct answers with specific details\n- **Brand Voice:** Knowledgeable, customer-focused\n\n**Strict Constraints:**\n- Number of Q&A pairs: EXACTLY 6-8\n- Each answer: EXACTLY 30-60 words\n- Must cover all mandatory cruise topics (see below)\n- Questions must be from customer perspective\n\n**Mandatory Cruise Topics (must cover at least 6 of these 8):**\n1. **Kabīnes izvēle** (Cabin selection) - Cabin types, recommendations, upgrades\n2. **Iekāpšana kuģī** (Boarding process) - Check-in, embarkation, documentation\n3. **Kuģa pakalpojumi** (Ship services) - WiFi, laundry, medical, currency\n4. **Ēdināšana** (Dining) - Meal times, dress codes, specialty restaurants\n5. **Krasta ekskursijas** (Shore excursions) - Booking, independent vs organized\n6. **Bagāža** (Luggage) - Limits, handling, what to pack\n7. **Īpašās vajadzības** (Special needs) - Dietary, accessibility, medical\n8. **Dokumenti\/vīzas** (Documents\/visas) - Passport, visas, required documents\n\n**Writing Guidelines:**\n- Questions should sound like real customer inquiries\n- Use \"Vai...\", \"Kāds...\", \"Kā...\", \"Kad...\" question formats\n- Answers must be specific to cruise travel (not generic)\n- Include practical details: times, processes, requirements\n- Mention Vanilla Travel contact for complex questions\n- Avoid legal disclaimers (keep customer-friendly)\n- Reference specific cruise\/ship elements when answering\n\n**Required Elements Per Q&A:**\n- Question in natural Latvian (customer perspective)\n- Answer with specific information (30-60 words)\n- Practical details (times, processes, requirements)\n- Action items or next steps when relevant\n\n**Forbidden:**\n- Generic answers that could apply to any cruise\n- Vague responses without specifics\n- Overly long explanations\n- Legal jargon or disclaimers\n- Promotional language in answers\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - 6-8 Q&A pairs, 30-60 word answers, mandatory topics\n\n**WRONG ❌:**\n```\n```json\n{\"faq\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere are the FAQs: {\"faq\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"faq\": {...}}\n```\n\n\n**Output Example (Icon of the Seas® Caribbean Cruise - 7 Q&A):**\n\n```json\n{\n  \"faq\": {\n    \"questions\": [\n      {\n        \"question\": \"Kādu kabīni izvēlēties pirmajam kruīzam?\",\n        \"answer\": \"Pirmajam kruīzam ieteicam kabīni ar balkonu - tā piedāvā labu vērtību un privātu āra telpu. Ja budžets ir ierobežots, oceanview kabīne ar logu ir laba alternatīva. Ģimenēm ar bērniem ieteicam kabīnes ar sofa bed vai connecting rooms iespēju. Vanilla Travel konsultanti palīdzēs izvēlēties piemērotāko variantu.\",\n        \"category\": \"Kabīnes izvēle\"\n      },\n      {\n        \"question\": \"Kā notiek iekāpšana kuģī un kad jābūt ostā?\",\n        \"answer\": \"Ierašanās Miami ostā ieteicama 3-4 stundas pirms kuģa izbraukšanas (16:00). Check-in sākas no 11:00. Jums būs nepieciešama pase, kruīza rezervācijas apstiprinājums un aizpildīta veselības deklarācija. Bagāža tiks nogādāta uz kabīni, bet rokas bagāžu ņemiet līdzi. Iekāpšanas process parasti ilgst 30-60 minūtes.\",\n        \"category\": \"Iekāpšana kuģī\"\n      },\n      {\n        \"question\": \"Vai kuģī ir WiFi un kāda ir cena?\",\n        \"answer\": \"Jā, Icon of the Seas® piedāvā WiFi visā kuģī. Royal Caribbean piedāvā vairākus interneta paketes: Surf (sociālie tīkli, e-pasts), Surf + Stream (video streaming), un Surf + Stream + Video Call. Cenas sākas no ~$15 dienā. Paketes var iegādāties pirms kruīza vai uz kuģa.\",\n        \"category\": \"Kuģa pakalpojumi\"\n      },\n      {\n        \"question\": \"Kādi ir ēdināšanas laiki un vai ir dress code?\",\n        \"answer\": \"Galvenā ēdamzāle piedāvā 3 vakariņu laikus: 17:30, 18:00 un 20:30. Brokastis un pusdienas pieejamas bufetes restorānos 7:00-14:00. Dress code: lielākā daļa vakaru ir 'Smart Casual', 1-2 vakari var būt 'Formal Night' (ieteicams uzvalks\/kleita). Specialty restorāniem nepieciešama rezervācija.\",\n        \"category\": \"Ēdināšana\"\n      },\n      {\n        \"question\": \"Vai krasta ekskursijas jārezervē iepriekš?\",\n        \"answer\": \"Krasta ekskursijas var rezervēt gan iepriekš caur Royal Caribbean, gan uz kuģa. Populārākās ekskursijas (niršana, zipline) ieteicams rezervēt iepriekš, jo vietas var beigties. Varat arī izpētīt ostas patstāvīgi vai izmantot vietējos tūrisma operatorus. Pārliecinieties, ka atgriežaties kuģī 30 minūtes pirms izbraukšanas.\",\n        \"category\": \"Krasta ekskursijas\"\n      },\n      {\n        \"question\": \"Kādas ir bagāžas prasības kruīzam?\",\n        \"answer\": \"Lidojumiem uz Miami atļauta nododamā bagāža līdz 23 kg (atkarībā no aviokompānijas). Uz kuģa nav stingru bagāžas ierobežojumu, bet ieteicams ņemt 1-2 koferus un rokas bagāžu. Rokas bagāžā ņemiet peldkostīmu, maiņas drēbes un medikamentus, jo galvenā bagāža var tikt piegādāta kabīnē ar 2-3 stundu kavēšanos.\",\n        \"category\": \"Bagāža\"\n      },\n      {\n        \"question\": \"Vai kuģis var nodrošināt īpašās ēdināšanas vajadzības?\",\n        \"answer\": \"Jā, Royal Caribbean piedāvā dažādas ēdināšanas iespējas: veģetārs, vegāns, bezglutēna, košer, halal, alerģiju ēdieni. Īpašās prasības jānorāda rezervācijas laikā vai vismaz 30 dienas pirms kruīza. Uz kuģa galvenais maître d' palīdzēs koordinēt ēdienkartes. Specialty restorāniem arī pieejamas pielāgotas izvēlnes.\",\n        \"category\": \"Īpašās vajadzības\"\n      }\n    ]\n  }\n}\n```\n\n**Validation Rules:**\n1. Must include 6-8 Q&A pairs\n2. Each answer must be 30-60 words\n3. Must cover at least 6 of the 8 mandatory categories\n4. Questions must be in customer voice (not marketing)\n5. Answers must be specific to the cruise\/ship\n6. All content in Latvian\n7. Each Q&A must have a category assigned\n8. No duplicate categories (each topic covered once)\n9. Answers must include actionable information\n10. Reference ship name or cruise line when relevant\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout\n\nTu esi profesionāls latviešu valodas tekstu redaktors un tūrisma satura speciālists.  \nTavs uzdevums ir rakstīt perfekti latviski – ar pareizu gramatiku, locījumiem, skaitli un dzimti – skanīgi, dabiski un profesionāli.\n\nValodas un stila noteikumi:\n1. Gramatika un locījumi:\n   - Pārbaudi katru teikumu, lai visiem īpašības vārdiem un lietvārdiem sakristu dzimte, skaitlis un locījums (piemēram, “romantiskiem pāriem”, nevis “romantiskām pāriem”).\n   - Pareizi lieto vienskaitļa un daudzskaitļa formas (piemēram, “numuri ir plaši”, nevis “numurs ir plaši”).\n   - Pārbaudi priekšvārdu saskaņu ar sekojošo locījumu (piemēram, “uz kuģa”, “pie jūras”, “no lidostas”).\n   - Izlabo jebkuras dzimtes vai locījuma kļūdas, pat ja teksts satur tikai nelielas neatbilstības.\n   - Ja nepieciešams, pārfrāzē teikumu, lai nodrošinātu perfektu gramatisko saskaņu.\n\n2. Terminoloģija:\n   - Lieto “kajītes”, nevis “izstabas\/numuri”.\n   - Lieto “viesnīca tikai pieaugušajiem”, nevis “pieaugušo viesnīca”.\n   - Lieto “piekrastē”, nevis “virs jūras” vai “kalnā virs jūras”.\n\n3. Stils:\n   - Tekstam jābūt informatīvam un profesionālam.\n   - Izvairies no reklāmas toni vai pārspīlējumiem.\n   - Nelieto vārdus kā “brīvdiena”, “pasakains”, “burvīgs”, “sapņains”, “elpu aizraujošs” un līdzīgus subjektīvus epitetus.\n   - Izmanto plūstošas, dabiskas latviešu valodas konstrukcijas.\n   - Nelieto parāk sarežgītus izteicienus."
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later."
        ],
        "timestamp": 1764777159529,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
        "executionId": "8835",
        "functionality": "regular"
    },
    "functionality": "regular"
}
178
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "415e40ed-2cb2-429b-8e9e-088a0ba19d15",
        "name": "AI Services",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            -320,
            864
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=You are a Vanilla Travel services expert creating clear \"Included \/ Not Included\" breakdowns for excursion programs. Your role is to structure service information in Latvian so travelers understand exactly what's covered in the trip price and what requires additional payment.\n\n**Your Objectives:**\n1. Create comprehensive \"Included\" list with categorized services\n2. Create clear \"Not Included\" list with typical additional costs\n3. Organize items into logical categories\n4. Provide specific details (not generic statements)\n5. Maintain transparency and clarity\n\n**Quality Standards:**\n- **Language:** Clear, unambiguous Latvian\n- **Tone:** Transparent, professional, factual\n- **Style:** Structured lists with specific details\n- **Brand Voice:** Honest, customer-focused, detailed\n\n**Strict Constraints:**\n- Must have both \"Included\" and \"Not Included\" sections\n- Each section must have at least 4 items\n- Items must be specific (not vague)\n- Must use consistent formatting\n\n**Service Categories for \"Included\":**\n1. **Lidojumi** (Flights) - International\/domestic flights, class, baggage\n2. **Transports** (Transport) - Transfers, vehicles, local transport\n3. **Izmitināšana** (Accommodation) - Hotels, lodges, standards\n4. **Ēdināšana** (Meals) - Breakfast, lunch, dinner arrangements\n5. **Ekskursijas** (Excursions) - Guided tours, entrance fees, activities\n6. **Papildu pakalpojumi** (Additional services) - Guides, insurance, etc.\n\n**Common \"Not Included\" Items:**\n- Optional activities and their approximate costs\n- Personal expenses (souvenirs, tips, etc.)\n- Travel insurance\n- Visa fees\n- Meals not specified as included\n- Alcoholic beverages\n- Optional excursions\n\n**Writing Guidelines:**\n- Be specific: \"Lidojumi ekonomiskajā klasē\" not just \"Lidojumi\"\n- Include details: \"Brokastis un vakariņas viesnīcās\" not just \"Ēdināšana\"\n- Mention standards: \"3-4 zvaigžņu viesnīcas\" not just \"Viesnīcas\"\n- List entrance fees separately if significant\n- Mention guide language: \"Angliski runājošā gida pakalpojumi\"\n- Include baggage allowances for flights\n- Specify meal types (buffet, set menu, etc.) if known\n- Add approximate costs for \"Not Included\" items when possible\n\n**Required Elements:**\n- Clear section headers: \"Ceļojuma cenā ir iekļauts:\" and \"Papildu izmaksas:\"\n- Categorized items (group related services)\n- Specific details for each item\n- Consistent bullet point formatting\n\n**Forbidden:**\n- Vague items like \"viss nepieciešamais\"\n- Missing important exclusions\n- Unclear meal arrangements\n- Generic \"un citi\" without specifics\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Minimum items, specific descriptions\n\n**WRONG ❌:**\n```\n```json\n{\"services\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's what's included: {\"services\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"services\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"services\": {\n    \"included\": [\n      \"Lidojumi ekonomiskajā klasē uz Antananarivu ar pārsēšanos\",\n      \"Nododamā bagāža lidojumu laikā\",\n      \"Iekšzemes lidojums Tuleara - Antananarivu ar nododamo bagāžu 20kg\",\n      \"Dzīvošana viesnīcās pēc programmas\",\n      \"Brokastis un vakariņas\",\n      \"Ieejas biļetes apskates objektos un nacionālajos parkos\",\n      \"Angliski runājoša gida pakalpojumi pēc maršruta\",\n      \"Vietējo gidu pakalpojumi nacionālajos parkos\",\n      \"Komfortabls transports pārbraucienu un transferu laikā\",\n      \"Nodokļi\"\n    ],\n    \"not_included\": [\n      \"Madagaskaras vīza (10EUR personai, noformējama Antananarivu lidostā)\",\n      \"Papildu naktis pludmalē pēc vēlēšanās\",\n      \"Ceļojuma apdrošināšana\",\n      \"Dzeramnaudas šoferim un gidam\",\n      \"Papildu ēdienreizes un dzērieni pie vakariņām\"\n    ]\n  }\n}\n```\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
    "context": [],
    "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
    "messages": [],
    "timestamp": 1764776953521,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
    "executionId": "8833",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "415e40ed-2cb2-429b-8e9e-088a0ba19d15",
            "name": "AI Services",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                -320,
                864
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=You are a Vanilla Travel services expert creating clear \"Included \/ Not Included\" breakdowns for excursion programs. Your role is to structure service information in Latvian so travelers understand exactly what's covered in the trip price and what requires additional payment.\n\n**Your Objectives:**\n1. Create comprehensive \"Included\" list with categorized services\n2. Create clear \"Not Included\" list with typical additional costs\n3. Organize items into logical categories\n4. Provide specific details (not generic statements)\n5. Maintain transparency and clarity\n\n**Quality Standards:**\n- **Language:** Clear, unambiguous Latvian\n- **Tone:** Transparent, professional, factual\n- **Style:** Structured lists with specific details\n- **Brand Voice:** Honest, customer-focused, detailed\n\n**Strict Constraints:**\n- Must have both \"Included\" and \"Not Included\" sections\n- Each section must have at least 4 items\n- Items must be specific (not vague)\n- Must use consistent formatting\n\n**Service Categories for \"Included\":**\n1. **Lidojumi** (Flights) - International\/domestic flights, class, baggage\n2. **Transports** (Transport) - Transfers, vehicles, local transport\n3. **Izmitināšana** (Accommodation) - Hotels, lodges, standards\n4. **Ēdināšana** (Meals) - Breakfast, lunch, dinner arrangements\n5. **Ekskursijas** (Excursions) - Guided tours, entrance fees, activities\n6. **Papildu pakalpojumi** (Additional services) - Guides, insurance, etc.\n\n**Common \"Not Included\" Items:**\n- Optional activities and their approximate costs\n- Personal expenses (souvenirs, tips, etc.)\n- Travel insurance\n- Visa fees\n- Meals not specified as included\n- Alcoholic beverages\n- Optional excursions\n\n**Writing Guidelines:**\n- Be specific: \"Lidojumi ekonomiskajā klasē\" not just \"Lidojumi\"\n- Include details: \"Brokastis un vakariņas viesnīcās\" not just \"Ēdināšana\"\n- Mention standards: \"3-4 zvaigžņu viesnīcas\" not just \"Viesnīcas\"\n- List entrance fees separately if significant\n- Mention guide language: \"Angliski runājošā gida pakalpojumi\"\n- Include baggage allowances for flights\n- Specify meal types (buffet, set menu, etc.) if known\n- Add approximate costs for \"Not Included\" items when possible\n\n**Required Elements:**\n- Clear section headers: \"Ceļojuma cenā ir iekļauts:\" and \"Papildu izmaksas:\"\n- Categorized items (group related services)\n- Specific details for each item\n- Consistent bullet point formatting\n\n**Forbidden:**\n- Vague items like \"viss nepieciešamais\"\n- Missing important exclusions\n- Unclear meal arrangements\n- Generic \"un citi\" without specifics\n\n**CRITICAL: JSON Output Format**\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n7. ✅ **Enforce constraints** - Minimum items, specific descriptions\n\n**WRONG ❌:**\n```\n```json\n{\"services\": {...}}\n```\n```\n\n**WRONG ❌:**\n```\nHere's what's included: {\"services\": {...}}\n```\n\n**CORRECT ✅:**\n```\n{\"services\": {...}}\n```\n\n**Output Example (Madagascar Excursion):**\n\n```json\n{\n  \"services\": {\n    \"included\": [\n      \"Lidojumi ekonomiskajā klasē uz Antananarivu ar pārsēšanos\",\n      \"Nododamā bagāža lidojumu laikā\",\n      \"Iekšzemes lidojums Tuleara - Antananarivu ar nododamo bagāžu 20kg\",\n      \"Dzīvošana viesnīcās pēc programmas\",\n      \"Brokastis un vakariņas\",\n      \"Ieejas biļetes apskates objektos un nacionālajos parkos\",\n      \"Angliski runājoša gida pakalpojumi pēc maršruta\",\n      \"Vietējo gidu pakalpojumi nacionālajos parkos\",\n      \"Komfortabls transports pārbraucienu un transferu laikā\",\n      \"Nodokļi\"\n    ],\n    \"not_included\": [\n      \"Madagaskaras vīza (10EUR personai, noformējama Antananarivu lidostā)\",\n      \"Papildu naktis pludmalē pēc vēlēšanās\",\n      \"Ceļojuma apdrošināšana\",\n      \"Dzeramnaudas šoferim un gidam\",\n      \"Papildu ēdienreizes un dzērieni pie vakariņām\"\n    ]\n  }\n}\n```\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:341:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:330:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_20900c8302166d11a7199f732c8d7bf5\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:144:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1074:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1255:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1691:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2307:11",
        "context": [],
        "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
        "messages": [
            "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later."
        ],
        "timestamp": 1764776953433,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "description": "[GoogleGenerativeAI Error]: Error fetching from https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-3-pro-preview:generateContent: [503 Service Unavailable] The model is overloaded. Please try again later.",
        "executionId": "8833",
        "functionality": "regular"
    },
    "functionality": "regular"
}
164
-
Completed
Error details
{
    "tags": [],
    "level": "warning",
    "stack": "Error: This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.\n    at \/usr\/local\/lib\/node_modules\/n8n\/src\/workflow-runner.ts:430:15\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)",
    "message": "This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.",
    "shouldReport": false
}
163
-
Failed
Error details
{
    "stack": "Error: Missing key for job 1346 updateProgress\n    at Object.finishedErrors (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/bull@4.16.4_patch_hash=a4b6d56db16fe5870646929938466d6a5c668435fd1551bed6a93fffb597ba42\/node_modules\/bull\/lib\/scripts.js:287:16)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/bull@4.16.4_patch_hash=a4b6d56db16fe5870646929938466d6a5c668435fd1551bed6a93fffb597ba42\/node_modules\/bull\/lib\/scripts.js:153:25\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecutionLifecycleHooks.<anonymous> (\/usr\/local\/lib\/node_modules\/n8n\/src\/scaling\/job-processor.ts:165:4)\n    at ExecutionLifecycleHooks.runHook (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/execution-lifecycle-hooks.ts:120:4)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2010:7\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2461:11",
    "message": "Missing key for job 1346 updateProgress"
}
162
-
Completed
Error details
{
    "tags": [],
    "level": "warning",
    "stack": "Error: This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.\n    at \/usr\/local\/lib\/node_modules\/n8n\/src\/workflow-runner.ts:430:15\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)",
    "message": "This execution failed to be processed too many times and will no longer retry. To allow this execution to complete, please break down your workflow or scale up your workers or adjust your worker settings.",
    "shouldReport": false
}
161
-
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "55df5ee1-4733-4447-913c-05cb9edb182e",
        "name": "AI Pricing",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            -336,
            1088
        ],
        "parameters": {
            "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
            "notice": "",
            "options": {
                "systemMessage": "=# Role\nYou are an expert data extraction specialist with deep expertise in document analysis, pricing structure interpretation, and JSON formatting. You excel at identifying and categorizing pricing-related information with precision and consistency.\n\n# Task\nExtract pricing information from provided documentation and output it in a specific JSON format that separates included and not included items.\n\n# Context\nUsers need to quickly understand what is and isn't included in pricing structures from various documents. This structured extraction enables clear comparison, analysis, and decision-making around pricing models. The JSON format ensures the data is machine-readable and easily integrated into other systems or workflows.\n\n# Instructions\nThe assistant should:\n\n1. **Analyze the provided documentation thoroughly** to identify all pricing-related information, specifically looking for items, features, services, or components that are explicitly mentioned as included or excluded from the pricing.\n\n2. **Extract included items** - any features, services, components, or benefits that are stated as part of the base price or included in the offering without additional cost.\n\n3. **Extract not included items** - any features, services, components, or benefits that are explicitly mentioned as excluded, requiring additional payment, or available as add-ons.\n\n4. **Output the information in the following exact JSON structure**:\n```json\n{\n  \"pricing_info\": {\n    \"included\": [],\n    \"not_included\": []\n  }\n}\n```\n\n5. **Populate the arrays** with clear, concise strings describing each item. Each item should be a separate element in the appropriate array.\n\n6. **Handle ambiguous cases** by only including items that are explicitly stated. If an item's inclusion status is unclear or not mentioned, omit it from both arrays rather than making assumptions.\n\n7. **Maintain consistency** in terminology and formatting across all extracted items, using the exact language from the source document where possible.\n\n8. **Return only valid JSON** with no additional commentary, explanations, or markdown formatting around the JSON output.\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: A Chat Model sub-node must be connected and enabled\n    at validateInputConfiguration (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/utils\/get-input-connection-data.ts:219:11)\n    at ExecuteContext.getInputConnectionData (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/utils\/get-input-connection-data.ts:259:2)\n    at ExecuteContext.getInputConnectionData (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/execute-context.ts:180:39)\n    at getChatModel (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:281:36)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:195:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:131:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1446:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1847:27",
    "context": [],
    "message": "A Chat Model sub-node must be connected and enabled",
    "messages": [],
    "timestamp": 1764692037530,
    "workflowId": "gJ6Pjcm2EmKJTNZZ",
    "executionId": "8135",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "55df5ee1-4733-4447-913c-05cb9edb182e",
            "name": "AI Pricing",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                -336,
                1088
            ],
            "parameters": {
                "text": "=# Processed Docs\n{{ $json.processed_doc }}\n\n# Additional Information\n{{ $json.additional_information }}",
                "notice": "",
                "options": {
                    "systemMessage": "=# Role\nYou are an expert data extraction specialist with deep expertise in document analysis, pricing structure interpretation, and JSON formatting. You excel at identifying and categorizing pricing-related information with precision and consistency.\n\n# Task\nExtract pricing information from provided documentation and output it in a specific JSON format that separates included and not included items.\n\n# Context\nUsers need to quickly understand what is and isn't included in pricing structures from various documents. This structured extraction enables clear comparison, analysis, and decision-making around pricing models. The JSON format ensures the data is machine-readable and easily integrated into other systems or workflows.\n\n# Instructions\nThe assistant should:\n\n1. **Analyze the provided documentation thoroughly** to identify all pricing-related information, specifically looking for items, features, services, or components that are explicitly mentioned as included or excluded from the pricing.\n\n2. **Extract included items** - any features, services, components, or benefits that are stated as part of the base price or included in the offering without additional cost.\n\n3. **Extract not included items** - any features, services, components, or benefits that are explicitly mentioned as excluded, requiring additional payment, or available as add-ons.\n\n4. **Output the information in the following exact JSON structure**:\n```json\n{\n  \"pricing_info\": {\n    \"included\": [],\n    \"not_included\": []\n  }\n}\n```\n\n5. **Populate the arrays** with clear, concise strings describing each item. Each item should be a separate element in the appropriate array.\n\n6. **Handle ambiguous cases** by only including items that are explicitly stated. If an item's inclusion status is unclear or not mentioned, omit it from both arrays rather than making assumptions.\n\n7. **Maintain consistency** in terminology and formatting across all extracted items, using the exact language from the source document where possible.\n\n8. **Return only valid JSON** with no additional commentary, explanations, or markdown formatting around the JSON output.\n\n\n**Apply Latvian language rules strictly**:\n   - Use \"numuri\" not \"istabas\" for rooms\n   - Use \"viesnīca tikai pieaugušajiem\" not \"pieaugušo viesnīca\" for adults-only hotels\n   - Use \"piekrastē\" not \"virs jūras\" or \"kalnā virs jūras\" for coastal locations\n   - Maintain correct Latvian grammar, gender agreement, and terminology throughout"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: A Chat Model sub-node must be connected and enabled\n    at validateInputConfiguration (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/utils\/get-input-connection-data.ts:219:11)\n    at ExecuteContext.getInputConnectionData (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/utils\/get-input-connection-data.ts:259:2)\n    at ExecuteContext.getInputConnectionData (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/node-execution-context\/execute-context.ts:180:39)\n    at getChatModel (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:281:36)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:195:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:131:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1446:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1847:27",
        "context": [],
        "message": "A Chat Model sub-node must be connected and enabled",
        "messages": [],
        "timestamp": 1764692037501,
        "workflowId": "gJ6Pjcm2EmKJTNZZ",
        "executionId": "8135",
        "functionality": "regular"
    },
    "functionality": "regular"
}
160
-
Failed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "01dd2ab3-48cc-46f8-a6eb-f7d431579e02",
        "name": "Call 'Image Search'1",
        "type": "n8n-nodes-base.executeWorkflow",
        "position": [
            -384,
            112
        ],
        "parameters": {
            "mode": "each",
            "source": "database",
            "options": {
                "waitForSubWorkflow": true
            },
            "operation": "call_workflow",
            "workflowId": {
                "__rl": true,
                "mode": "list",
                "value": "MRKcIwSiExpUohb2",
                "cachedResultUrl": "\/workflow\/MRKcIwSiExpUohb2",
                "cachedResultName": "Image Search"
            },
            "workflowInputs": {
                "value": {
                    "type": "Cruise",
                    "query": "={{ $('Split Cruise Queries').item.json.query }}",
                    "task_id": "={{ $('Record New Cruise').item.json.id }}",
                    "query_category": "={{ $('Split Cruise Queries').item.json.category }}"
                },
                "schema": [
                    {
                        "id": "query",
                        "type": "string",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "type",
                        "type": "string",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "type",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "query_category",
                        "type": "string",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "query_category",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    },
                    {
                        "id": "task_id",
                        "type": "number",
                        "display": true,
                        "removed": false,
                        "required": false,
                        "displayName": "task_id",
                        "defaultMatch": false,
                        "canBeUsedToMatch": true
                    }
                ],
                "mappingMode": "defineBelow",
                "matchingColumns": [],
                "attemptToConvertTypes": false,
                "convertFieldsToString": true
            }
        },
        "typeVersion": 1.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Error executing workflow with item at index 4\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23\/node_modules\/n8n-nodes-base\/nodes\/ExecuteWorkflow\/ExecuteWorkflow\/ExecuteWorkflow.node.ts:388:12)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1446:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1847:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2461:11",
    "context": {
        "itemIndex": 4
    },
    "message": "Error executing workflow with item at index 4",
    "messages": [],
    "timestamp": 1764669738868,
    "description": "Bad request - please check your parameters",
    "functionality": "regular"
}
123
CRUISE
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "04f4670f-4dfe-4e55-ada8-1428539d9651",
        "name": "Structured Output Parser6",
        "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
        "position": [
            288,
            240
        ],
        "parameters": {
            "notice": "",
            "autoFix": false,
            "schemaType": "manual",
            "inputSchema": "{\n  \"$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\n  \"type\": \"object\",\n  \"required\": [\"about_cruise\"],\n  \"properties\": {\n    \"about_cruise\": {\n      \"type\": \"object\",\n      \"required\": [\"content\"],\n      \"properties\": {\n        \"content\": {\n          \"type\": \"string\",\n          \"description\": \"Three paragraphs (200-280 words total) in Latvian, separated by double newlines (\\\\n\\\\n)\"\n        }\n      }\n    }\n  }\n}"
        },
        "typeVersion": 1.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Model output doesn't fit required format\n    at N8nStructuredOutputParser.parse (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/utils\/output_parsers\/N8nStructuredOutputParser.ts:56:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at RunnableLambda.func (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:219:27)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@langchain+core@0.3.68_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30.1_@o_8765aa945f981de137f9a48155aa0f8f\/node_modules\/@langchain\/core\/dist\/runnables\/base.cjs:1716:34",
    "context": [],
    "message": "Model output doesn't fit required format",
    "messages": [],
    "timestamp": 1764099354182,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings",
    "executionId": "4825",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "04f4670f-4dfe-4e55-ada8-1428539d9651",
            "name": "Structured Output Parser6",
            "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
            "position": [
                288,
                240
            ],
            "parameters": {
                "notice": "",
                "autoFix": false,
                "schemaType": "manual",
                "inputSchema": "{\n  \"$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\n  \"type\": \"object\",\n  \"required\": [\"about_cruise\"],\n  \"properties\": {\n    \"about_cruise\": {\n      \"type\": \"object\",\n      \"required\": [\"content\"],\n      \"properties\": {\n        \"content\": {\n          \"type\": \"string\",\n          \"description\": \"Three paragraphs (200-280 words total) in Latvian, separated by double newlines (\\\\n\\\\n)\"\n        }\n      }\n    }\n  }\n}"
            },
            "typeVersion": 1.3
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Model output doesn't fit required format\n    at N8nStructuredOutputParser.parse (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/utils\/output_parsers\/N8nStructuredOutputParser.ts:56:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at RunnableLambda.func (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:219:27)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@langchain+core@0.3.68_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30.1_@o_8765aa945f981de137f9a48155aa0f8f\/node_modules\/@langchain\/core\/dist\/runnables\/base.cjs:1716:34",
        "context": {
            "outputParserFailReason": "Model output wrapper is an empty object"
        },
        "message": "Model output doesn't fit required format",
        "messages": [],
        "timestamp": 1764099354153,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings",
        "executionId": "4825",
        "functionality": "regular"
    },
    "functionality": "regular"
}
107
CRUISE
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
        "name": "AI Hero Cruise",
        "type": "@n8n\/n8n-nodes-langchain.agent",
        "position": [
            0,
            0
        ],
        "parameters": {
            "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}",
            "notice": "",
            "options": {
                "systemMessage": "=**Role**\n\nYou are an expert cruise content writer specializing in hero section copywriting. Your expertise lies in crafting compelling, concise titles and summaries that capture the essence of cruise experiences while adhering to strict character and word count requirements. You possess deep knowledge of cruise industry terminology, destination marketing, and persuasive travel writing in Latvian.\n\n**Task**\n\nCreate hero section content for cruise offerings in Latvian language, consisting of:\n- A **title** (40–70 characters, including the cruise region and departure port).\n- A **summary** (exactly 60–90 words in Latvian) that includes the cruise ship name, destination route, and notable luxury or onboard features.\n\nThe content must be output as **valid JSON**, matching this exact schema:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n````\n\n**Instructions**\n\n1. Ensure **title** is between 40–70 characters and explicitly includes both the **cruise region** and **departure port**.\n\n   * Example: \"Norvēģijas fjordu kruīzs no Kopenhāgenas\"\n2. Write a **summary** in **precise Latvian** (60–90 words). It must:\n\n   * Include the **ship name** (e.g., “Norwegian Joy”)\n   * Include **destination stops** (e.g., Nassau, CocoCay)\n   * Include specific **luxury or onboard features** (e.g., go-kart track, The Haven)\n   * Avoid **subjective** or **overly promotional language** like: \"burvīgs\", \"pasakains\", \"brīvdiena\", etc.\n3. Apply Latvian terminology strictly:\n\n   * Use “numuri” not “istabas”\n   * Use “viesnīca tikai pieaugušajiem” not “pieaugušo viesnīca”\n   * Use “piekrastē” not “virs jūras”\n   * Ensure all grammar, spelling, and gender agreement rules are followed\n4. **Do not exceed** word or character limits. Check carefully.\n5. **Output** must be formatted using the `format_final_json_response` tool. Do not manually format JSON.\n\nTu esi profesionāls latviešu valodas tekstu redaktors un tūrisma satura speciālists.  \nTavs uzdevums ir rakstīt perfekti latviski – ar pareizu gramatiku, locījumiem, skaitli un dzimti – skanīgi, dabiski un profesionāli.\n\nValodas un stila noteikumi:\n1. Gramatika un locījumi:\n   - Pārbaudi katru teikumu, lai visiem īpašības vārdiem un lietvārdiem sakristu dzimte, skaitlis un locījums (piemēram, “romantiskiem pāriem”, nevis “romantiskām pāriem”).\n   - Pareizi lieto vienskaitļa un daudzskaitļa formas (piemēram, “numuri ir plaši”, nevis “numurs ir plaši”).\n   - Pārbaudi priekšvārdu saskaņu ar sekojošo locījumu (piemēram, “uz kuģa”, “pie jūras”, “no lidostas”).\n   - Izlabo jebkuras dzimtes vai locījuma kļūdas, pat ja teksts satur tikai nelielas neatbilstības.\n   - Ja nepieciešams, pārfrāzē teikumu, lai nodrošinātu perfektu gramatisko saskaņu.\n\n2. Terminoloģija:\n   - Lieto “numuri”, nevis “izstabas”.\n   - Lieto “viesnīca tikai pieaugušajiem”, nevis “pieaugušo viesnīca”.\n   - Lieto “piekrastē”, nevis “virs jūras” vai “kalnā virs jūras”.\n\n3. Stils:\n   - Tekstam jābūt informatīvam un profesionālam.\n   - Izvairies no reklāmas toni vai pārspīlējumiem.\n   - Nelieto vārdus kā “brīvdiena”, “pasakains”, “burvīgs”, “sapņains”, “elpu aizraujošs” un līdzīgus subjektīvus epitetus.\n   - Izmanto plūstošas, dabiskas latviešu valodas konstrukcijas.\n   - Nelieto parāk sarežgītus izteicienus.\n\nJa ievaddati satur kļūdas, automātiski izlabo tās, saglabājot nozīmi.  \nAtbildi tikai ar koriģētu, gramatiski pareizu un terminoloģiski atbilstošu tekstu.\n\n# Summary Example that we can follow its structure:\nSample 1:\nIzbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!\n\nSample 2:\n\"Izbaudi 8 dienu kruīzu ar MSC Euribia pa Arābijas jūru un Persijas līci!\nAtklāj Dubaijas modernās ainavas, Dohas vēsturi, Bahreinas šarmu, Abū Dabī greznību un Sir Bani Yas salas dabu. Uz kuģa Tevi sagaida restorāni, baseini, spa un šovi – lieliska atpūta, kas apvieno kultūras piedzīvojumus ar komfortu un izklaidi.\"\n\nSample 3:\nIzbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums - dabas, saules un komforta cienītājiem!"
            },
            "promptType": "define",
            "needsFallback": false,
            "hasOutputParser": true,
            "aiAgentStarterCallout": "",
            "preBuiltAgentsCallout": ""
        },
        "typeVersion": 2.2
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Request timed out.\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:313:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:302:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:131:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1446:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1847:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2461:11",
    "context": [],
    "message": "Request timed out.",
    "messages": [],
    "timestamp": 1762870425620,
    "workflowId": "1dhj8B0xljSFmr5u",
    "executionId": "2980",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "3004dbef-35cc-44c2-b002-0afdcefff277",
            "name": "AI Hero Cruise",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                0,
                0
            ],
            "parameters": {
                "text": "=# Route Specific Context\n{{ $json.route_specific_cleanup }}\n\n# Ship Specific Context\n{{ $json.ship_specific_cleanup }}",
                "notice": "",
                "options": {
                    "systemMessage": "=**Role**\n\nYou are an expert cruise content writer specializing in hero section copywriting. Your expertise lies in crafting compelling, concise titles and summaries that capture the essence of cruise experiences while adhering to strict character and word count requirements. You possess deep knowledge of cruise industry terminology, destination marketing, and persuasive travel writing in Latvian.\n\n**Task**\n\nCreate hero section content for cruise offerings in Latvian language, consisting of:\n- A **title** (40–70 characters, including the cruise region and departure port).\n- A **summary** (exactly 60–90 words in Latvian) that includes the cruise ship name, destination route, and notable luxury or onboard features.\n\nThe content must be output as **valid JSON**, matching this exact schema:\n```json\n{\n  \"hero\": {\n    \"title\": \"string (40-70 characters)\",\n    \"summary\": \"string (60-90 words in Latvian)\"\n  }\n}\n````\n\n**Instructions**\n\n1. Ensure **title** is between 40–70 characters and explicitly includes both the **cruise region** and **departure port**.\n\n   * Example: \"Norvēģijas fjordu kruīzs no Kopenhāgenas\"\n2. Write a **summary** in **precise Latvian** (60–90 words). It must:\n\n   * Include the **ship name** (e.g., “Norwegian Joy”)\n   * Include **destination stops** (e.g., Nassau, CocoCay)\n   * Include specific **luxury or onboard features** (e.g., go-kart track, The Haven)\n   * Avoid **subjective** or **overly promotional language** like: \"burvīgs\", \"pasakains\", \"brīvdiena\", etc.\n3. Apply Latvian terminology strictly:\n\n   * Use “numuri” not “istabas”\n   * Use “viesnīca tikai pieaugušajiem” not “pieaugušo viesnīca”\n   * Use “piekrastē” not “virs jūras”\n   * Ensure all grammar, spelling, and gender agreement rules are followed\n4. **Do not exceed** word or character limits. Check carefully.\n5. **Output** must be formatted using the `format_final_json_response` tool. Do not manually format JSON.\n\nTu esi profesionāls latviešu valodas tekstu redaktors un tūrisma satura speciālists.  \nTavs uzdevums ir rakstīt perfekti latviski – ar pareizu gramatiku, locījumiem, skaitli un dzimti – skanīgi, dabiski un profesionāli.\n\nValodas un stila noteikumi:\n1. Gramatika un locījumi:\n   - Pārbaudi katru teikumu, lai visiem īpašības vārdiem un lietvārdiem sakristu dzimte, skaitlis un locījums (piemēram, “romantiskiem pāriem”, nevis “romantiskām pāriem”).\n   - Pareizi lieto vienskaitļa un daudzskaitļa formas (piemēram, “numuri ir plaši”, nevis “numurs ir plaši”).\n   - Pārbaudi priekšvārdu saskaņu ar sekojošo locījumu (piemēram, “uz kuģa”, “pie jūras”, “no lidostas”).\n   - Izlabo jebkuras dzimtes vai locījuma kļūdas, pat ja teksts satur tikai nelielas neatbilstības.\n   - Ja nepieciešams, pārfrāzē teikumu, lai nodrošinātu perfektu gramatisko saskaņu.\n\n2. Terminoloģija:\n   - Lieto “numuri”, nevis “izstabas”.\n   - Lieto “viesnīca tikai pieaugušajiem”, nevis “pieaugušo viesnīca”.\n   - Lieto “piekrastē”, nevis “virs jūras” vai “kalnā virs jūras”.\n\n3. Stils:\n   - Tekstam jābūt informatīvam un profesionālam.\n   - Izvairies no reklāmas toni vai pārspīlējumiem.\n   - Nelieto vārdus kā “brīvdiena”, “pasakains”, “burvīgs”, “sapņains”, “elpu aizraujošs” un līdzīgus subjektīvus epitetus.\n   - Izmanto plūstošas, dabiskas latviešu valodas konstrukcijas.\n   - Nelieto parāk sarežgītus izteicienus.\n\nJa ievaddati satur kļūdas, automātiski izlabo tās, saglabājot nozīmi.  \nAtbildi tikai ar koriģētu, gramatiski pareizu un terminoloģiski atbilstošu tekstu.\n\n# Summary Example that we can follow its structure:\nSample 1:\nIzbaudi 8 dienu kruīzu uz Norvēģijas fjordiem ar eleganto kuģi MSC Euribia! Tevi sagaida majestātiskas dabas ainavas, aizraujošas ekskursijas, gardēžu restorāni, baseini, SPA un izklaides visa ceļojuma garumā. Šis kruīzs ir lieliska izvēle dabas mīļotājiem, pāriem un visiem, kas vēlas apvienot relaksāciju ar iespaidīgiem piedzīvojumiem!\n\nSample 2:\n\"Izbaudi 8 dienu kruīzu ar MSC Euribia pa Arābijas jūru un Persijas līci!\nAtklāj Dubaijas modernās ainavas, Dohas vēsturi, Bahreinas šarmu, Abū Dabī greznību un Sir Bani Yas salas dabu. Uz kuģa Tevi sagaida restorāni, baseini, spa un šovi – lieliska atpūta, kas apvieno kultūras piedzīvojumus ar komfortu un izklaidi.\"\n\nSample 3:\nIzbaudi Kanāriju salu eksotiku un Madeiras šarmu kruīzā ar kuģi Costa Fortuna. Tevi sagaida vulkāniskas ainavas, saulainas pludmales, krāsaini ciemati un zaļojošas tropu dabas bagātība. Pēc piedzīvojumiem krastā atgriezīsies uz kuģa, lai baudītu gardas maltītes, relaksējošu spa, peldbaseinus un aizraujošus vakara šovus. Ceļojums - dabas, saules un komforta cienītājiem!"
                },
                "promptType": "define",
                "needsFallback": false,
                "hasOutputParser": true,
                "aiAgentStarterCallout": "",
                "preBuiltAgentsCallout": ""
            },
            "typeVersion": 2.2
        },
        "tags": {
            "reWrapped": true
        },
        "level": "warning",
        "stack": "NodeOperationError: Request timed out.\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:313:12\n    at Array.forEach (<anonymous>)\n    at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V2\/execute.ts:302:16)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V2\/AgentV2.node.ts:131:10)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:8)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1446:11)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1847:27\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2461:11",
        "context": [],
        "message": "Request timed out.",
        "messages": [
            "Request timed out."
        ],
        "timestamp": 1762870425588,
        "workflowId": "1dhj8B0xljSFmr5u",
        "executionId": "2980",
        "functionality": "regular"
    },
    "functionality": "regular"
}
105
CRUISE
Completed
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "6cd29046-8bfb-4282-8423-8820c138be1b",
        "name": "Structured Output Parser7",
        "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
        "position": [
            304,
            1312
        ],
        "parameters": {
            "notice": "",
            "autoFix": false,
            "schemaType": "manual",
            "inputSchema": "{\n  \"$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\n  \"type\": \"object\",\n  \"required\": [\"ship_info\"],\n  \"properties\": {\n    \"ship_info\": {\n      \"type\": \"object\",\n      \"required\": [\"specifications\", \"services\", \"entertainment\", \"dining\"],\n      \"properties\": {\n        \"specifications\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Specification items in Latvian. Must include year, tonnage, capacity, decks, length, and unique technical features.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single specification item in Latvian (e.g., 'Uzbūvēts: 2024. gads', 'Bruto tonāža: 250,800 GT')\"\n              }\n            }\n          }\n        },\n        \"services\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Service and amenity items in Latvian. Must include pools, spa, fitness, and unique amenities from Perplexity enrichment.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single service\/amenity item in Latvian (e.g., '7 baseini, ieskaitot lielāko baseinu jūrā')\"\n              }\n            }\n          }\n        },\n        \"entertainment\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Entertainment items in Latvian. Must include theaters, shows, activities, nightlife, and unique entertainment from Perplexity enrichment.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single entertainment item in Latvian (e.g., 'Royal Theater - galvenais teātris ar Broadway stila šoviem')\"\n              }\n            }\n          }\n        },\n        \"dining\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Dining items in Latvian. Must include total count, main dining rooms, specialty restaurants with names\/cuisines, bars, and room service.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single dining item in Latvian (e.g., 'Vairāk nekā 40 ēdināšanas iespējas', 'Izumi - japāņu virtuve un sushi')\"\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}"
        },
        "typeVersion": 1.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Model output doesn't fit required format\n    at N8nStructuredOutputParser.parse (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/utils\/output_parsers\/N8nStructuredOutputParser.ts:56:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at RunnableLambda.func (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:219:27)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@langchain+core@0.3.68_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30.1_@o_8765aa945f981de137f9a48155aa0f8f\/node_modules\/@langchain\/core\/dist\/runnables\/base.cjs:1716:34",
    "context": [],
    "message": "Model output doesn't fit required format",
    "messages": [],
    "timestamp": 1762868571470,
    "workflowId": "1dhj8B0xljSFmr5u",
    "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings",
    "executionId": "2892",
    "errorResponse": {
        "name": "NodeOperationError",
        "node": {
            "id": "6cd29046-8bfb-4282-8423-8820c138be1b",
            "name": "Structured Output Parser7",
            "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
            "position": [
                304,
                1312
            ],
            "parameters": {
                "notice": "",
                "autoFix": false,
                "schemaType": "manual",
                "inputSchema": "{\n  \"$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\n  \"type\": \"object\",\n  \"required\": [\"ship_info\"],\n  \"properties\": {\n    \"ship_info\": {\n      \"type\": \"object\",\n      \"required\": [\"specifications\", \"services\", \"entertainment\", \"dining\"],\n      \"properties\": {\n        \"specifications\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Specification items in Latvian. Must include year, tonnage, capacity, decks, length, and unique technical features.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single specification item in Latvian (e.g., 'Uzbūvēts: 2024. gads', 'Bruto tonāža: 250,800 GT')\"\n              }\n            }\n          }\n        },\n        \"services\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Service and amenity items in Latvian. Must include pools, spa, fitness, and unique amenities from Perplexity enrichment.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single service\/amenity item in Latvian (e.g., '7 baseini, ieskaitot lielāko baseinu jūrā')\"\n              }\n            }\n          }\n        },\n        \"entertainment\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Entertainment items in Latvian. Must include theaters, shows, activities, nightlife, and unique entertainment from Perplexity enrichment.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single entertainment item in Latvian (e.g., 'Royal Theater - galvenais teātris ar Broadway stila šoviem')\"\n              }\n            }\n          }\n        },\n        \"dining\": {\n          \"type\": \"object\",\n          \"required\": [\"items\"],\n          \"properties\": {\n            \"items\": {\n              \"type\": \"array\",\n              \"description\": \"Dining items in Latvian. Must include total count, main dining rooms, specialty restaurants with names\/cuisines, bars, and room service.\",\n              \"items\": {\n                \"type\": \"string\",\n                \"description\": \"Single dining item in Latvian (e.g., 'Vairāk nekā 40 ēdināšanas iespējas', 'Izumi - japāņu virtuve un sushi')\"\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}"
            },
            "typeVersion": 1.3
        },
        "tags": [],
        "level": "warning",
        "stack": "NodeOperationError: Model output doesn't fit required format\n    at N8nStructuredOutputParser.parse (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/utils\/output_parsers\/N8nStructuredOutputParser.ts:56:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at RunnableLambda.func (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/common.ts:219:27)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@langchain+core@0.3.68_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30.1_@o_8765aa945f981de137f9a48155aa0f8f\/node_modules\/@langchain\/core\/dist\/runnables\/base.cjs:1716:34",
        "context": {
            "outputParserFailReason": "Model output wrapper is an empty object"
        },
        "message": "Model output doesn't fit required format",
        "messages": [],
        "timestamp": 1762868571422,
        "workflowId": "1dhj8B0xljSFmr5u",
        "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings",
        "executionId": "2892",
        "functionality": "regular"
    },
    "functionality": "regular"
}
103
CRUISE
Completed
Error details
{
    "stack": "Error: Missing key for job 23 updateProgress\n    at Object.finishedErrors (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/bull@4.16.4_patch_hash=a4b6d56db16fe5870646929938466d6a5c668435fd1551bed6a93fffb597ba42\/node_modules\/bull\/lib\/scripts.js:287:16)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/bull@4.16.4_patch_hash=a4b6d56db16fe5870646929938466d6a5c668435fd1551bed6a93fffb597ba42\/node_modules\/bull\/lib\/scripts.js:153:25\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at ExecutionLifecycleHooks.<anonymous> (\/usr\/local\/lib\/node_modules\/n8n\/src\/scaling\/job-processor.ts:165:4)\n    at ExecutionLifecycleHooks.runHook (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/execution-lifecycle-hooks.ts:120:4)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2010:7\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2461:11",
    "message": "Missing key for job 23 updateProgress"
}
86
CRUISE
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "dd971c29-5e31-40f9-8570-2ff2a66d93b4",
        "name": "Clean Up Cruise",
        "type": "n8n-nodes-base.set",
        "position": [
            3696,
            -16
        ],
        "parameters": {
            "mode": "manual",
            "options": [],
            "assignments": {
                "assignments": [
                    {
                        "id": "3c07031b-4768-4841-91b3-0b1ca4a4f61c",
                        "name": "output",
                        "type": "object",
                        "value": "={{ { ...$json.output.merge(), \"destinations\": $json.output[0] } }}"
                    },
                    {
                        "id": "81da3a17-1231-42e7-8db6-e4a0eb980dbd",
                        "name": "output[0]",
                        "type": "array",
                        "value": "="
                    }
                ]
            },
            "duplicateItem": false,
            "includeOtherFields": false
        },
        "typeVersion": 3.4
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: 'output[0]' expects a array but we got '' [item 0]\n    at validateEntry (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23\/node_modules\/n8n-nodes-base\/nodes\/Set\/v2\/helpers\/utils.ts:210:10)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23\/node_modules\/n8n-nodes-base\/nodes\/Set\/v2\/manual.mode.ts:238:42\n    at Array.map (<anonymous>)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23\/node_modules\/n8n-nodes-base\/nodes\/Set\/v2\/manual.mode.ts:237:46)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23\/node_modules\/n8n-nodes-base\/nodes\/Set\/v2\/SetV2.node.ts:351:48)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:31)\n    at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1446:22)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1847:38\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2461:11",
    "context": {
        "itemIndex": 0
    },
    "message": "'output[0]' expects a array but we got '' [item 0]",
    "messages": [],
    "timestamp": 1762156099905,
    "description": "To fix the error try to change the type for the field \"output[0]\" or activate the option “Ignore Type Conversion Errors” to apply a less strict type validation",
    "functionality": "regular"
}
85
CRUISE
Failed
Pending…
Error details
{
    "name": "NodeApiError",
    "node": {
        "id": "f492dc67-1350-4a09-a976-8a780d150b25",
        "name": "Port-Specific Enrichment",
        "type": "n8n-nodes-base.perplexity",
        "position": [
            1600,
            -816
        ],
        "parameters": {
            "model": "sonar-reasoning-pro",
            "options": {
                "returnImages": true
            },
            "messages": {
                "message": [
                    {
                        "role": "system",
                        "content": "=You are a cruise destination and travel expert providing factual, current information for cruise content creation.\n\nYour responses should:\n- Focus on practical details relevant to cruise passengers (limited time in port, typically 6-10 hours)\n- Include specific attraction names, locations, and distances from cruise terminals\n- Provide cultural and historical context in an engaging but concise manner\n- Mention transport options and time requirements\n- Suggest shore excursion ideas suitable for various traveler types\n- Use current, verified information (2024-2025)\n\nFormat your responses with clear sections and bullet points for easy parsing.\n"
                    },
                    {
                        "role": "user",
                        "content": "=For cruise passengers visiting {{ $json.name }}, {{ $json.country }}:\n\n1. What are the top 3-4 must-see attractions or experiences accessible from the cruise terminal?\n2. What is the cultural and historical significance of this destination?\n3. How far is the cruise terminal from the city center, and what transport options are available?\n4. What are the best shore excursion options for different traveler types (families, couples, adventure seekers)?\n5. What practical tips should cruise passengers know (time needed, costs, best times to visit)?\n6. What makes this destination unique or special for visitors?\n\nProvide specific names, distances, and practical details."
                    }
                ]
            },
            "resource": "chat",
            "simplify": false,
            "operation": "complete",
            "requestOptions": []
        },
        "credentials": {
            "perplexityApi": {
                "id": "60ZzVNdKWLUOzTaU",
                "name": "Perplexity account"
            }
        },
        "typeVersion": 1
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeApiError: Unauthorized.\n    at ExecuteSingleContext.sendErrorPostReceive (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23\/node_modules\/n8n-nodes-base\/nodes\/Perplexity\/GenericFunctions.ts:34:9)\n    at RoutingNode.runPostReceiveAction (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/routing-node.ts:309:24)\n    at RoutingNode.postProcessResponseData (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/routing-node.ts:494:30)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/routing-node.ts:732:17\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at RoutingNode.makeRequest (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/routing-node.ts:725:19)\n    at async Promise.allSettled (index 0)\n    at RoutingNode.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/routing-node.ts:234:29)\n    at ExecuteContext.versionedNodeType.execute (\/usr\/local\/lib\/node_modules\/n8n\/src\/node-types.ts:60:18)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:8)",
    "context": {
        "runIndex": 0,
        "itemIndex": 0
    },
    "message": "Unauthorized.",
    "httpCode": "401",
    "messages": [],
    "timestamp": 1761764403775,
    "description": "Any optional system messages must be sent first, followed by alternating user and assistant messages. For more details, refer to the API documentation: https:\/\/docs.perplexity.ai\/api-reference\/chat-completions",
    "errorResponse": {
        "body": "<html>\r\n<head><title>401 Authorization Required<\/title><\/head>\r\n<body>\r\n<center><h1>401 Authorization Required<\/h1><\/center>\r\n<hr><center>openresty\/1.27.4<\/center>\r\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9964e9e29b53a887',t:'MTc2MTc2NDQwMy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script><\/body>\r\n<\/html>\r\n",
        "headers": {
            "date": "Wed, 29 Oct 2025 19:00:03 GMT",
            "cf-ray": "9964e9e29b53a887-RIX",
            "server": "cloudflare",
            "connection": "close",
            "set-cookie": "__cf_bm=rPgFk_t5UFrrHVPCgXaZZOzol4fDY1WL6K6wFrEvjxg-1761764403-1.0.1.1-KSNFVg43DJrF5k0KShS1N3MMr.jy85P__2Lapk58EI1jr9vE6t7yfhdkRFpHz8MpB4QV5gfy1jhI6xr8UKOF863AyN1BPrEGF7ybjLAB3Mo; path=\/; expires=Wed, 29-Oct-25 19:30:03 GMT; domain=.perplexity.ai; HttpOnly; Secure; SameSite=None",
            "content-type": "text\/html",
            "cf-cache-status": "DYNAMIC",
            "transfer-encoding": "chunked",
            "strict-transport-security": "max-age=15552000; includeSubDomains; preload"
        },
        "statusCode": 401,
        "statusMessage": "Unauthorized"
    },
    "functionality": "regular"
}
83
CRUISE
Failed
Pending…
Error details
{
    "name": "NodeOperationError",
    "node": {
        "id": "df9ff01c-5905-4b70-bf33-c9e2dba03b4d",
        "name": "Structured Output Parser14",
        "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
        "position": [
            672,
            -96
        ],
        "parameters": {
            "notice": "",
            "autoFix": false,
            "schemaType": "manual",
            "inputSchema": "{ \"type\": \"object\", \"required\": [\"ship_name\", \"cruise_line\", \"region\", \"ports\"], \"properties\": { \"ship_name\": { \"type\": \"string\", \"description\": \"Exact ship name as written in the cruise information\" }, \"cruise_line\": { \"type\": \"string\", \"description\": \"Cruise line\/company name (e.g., 'MSC Cruises', 'Royal Caribbean')\" }, \"duration_nights\": { \"type\": \"integer\", \"description\": \"Number of nights for the cruise\", \"minimum\": 1 }, \"departure_date\": { \"type\": [\"string\", \"null\"], \"description\": \"Departure date in ISO format YYYY-MM-DD\", \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\" }, \"return_date\": { \"type\": [\"string\", \"null\"], \"description\": \"Return date in ISO format YYYY-MM-DD\", \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\" }, \"departure_port\": { \"type\": \"object\", \"properties\": { \"name\": { \"type\": \"string\", \"description\": \"Departure port name\" }, \"country\": { \"type\": \"string\", \"description\": \"Departure port country\" } }, \"required\": [\"name\"] }, \"region\": { \"type\": \"string\", \"description\": \"Cruise region (e.g., 'Caribbean', 'Mediterranean', 'Arabian Gulf', 'Baltic Sea')\" }, \"ports\": { \"type\": \"array\", \"description\": \"Array of all ports of call excluding sea days\", \"minItems\": 2, \"items\": { \"type\": \"object\", \"required\": [\"name\", \"is_sea_day\"], \"properties\": { \"name\": { \"type\": \"string\", \"description\": \"Port\/city name\" }, \"country\": { \"type\": [\"string\", \"null\"], \"description\": \"Country name\" }, \"arrival_time\": { \"type\": [\"string\", \"null\"], \"description\": \"Arrival time in HH:MM format\", \"pattern\": \"^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$\" }, \"departure_time\": { \"type\": [\"string\", \"null\"], \"description\": \"Departure time in HH:MM format\", \"pattern\": \"^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$\" }, \"hours_in_port\": { \"type\": [\"string\", \"null\"], \"description\": \"Estimated hours in port (e.g., '8-10 hours', '6 hours')\" }, \"is_sea_day\": { \"type\": \"boolean\", \"description\": \"True if this is a day at sea with no port stop\" } } } }, \"ship_specs\": { \"type\": \"object\", \"properties\": { \"year_built\": { \"type\": [\"integer\", \"null\"], \"description\": \"Year the ship was built\" }, \"tonnage\": { \"type\": [\"integer\", \"null\"], \"description\": \"Gross tonnage (GT) as integer\" }, \"passenger_capacity\": { \"type\": [\"integer\", \"null\"], \"description\": \"Maximum passenger capacity\" }, \"crew_size\": { \"type\": [\"integer\", \"null\"], \"description\": \"Number of crew members\" }, \"decks\": { \"type\": [\"integer\", \"null\"], \"description\": \"Number of decks\" } } }, \"ship_amenities\": { \"type\": \"object\", \"properties\": { \"restaurants_count\": { \"type\": [\"integer\", \"null\"], \"description\": \"Number of restaurants onboard\" }, \"pools_count\": { \"type\": [\"integer\", \"null\"], \"description\": \"Number of pools\" }, \"entertainment\": { \"type\": \"array\", \"description\": \"Entertainment options available\", \"items\": {\"type\": \"string\"} }, \"dining_options\": { \"type\": \"array\", \"description\": \"Types of dining venues\", \"items\": {\"type\": \"string\"} }, \"kids_facilities\": { \"type\": \"array\", \"description\": \"Kids clubs and facilities\", \"items\": {\"type\": \"string\"} }, \"spa\": { \"type\": [\"boolean\", \"null\"], \"description\": \"Whether ship has a spa\" }, \"casino\": { \"type\": [\"boolean\", \"null\"], \"description\": \"Whether ship has a casino\" }, \"theater\": { \"type\": [\"boolean\", \"null\"], \"description\": \"Whether ship has a theater\" } } }, \"cabin_types\": { \"type\": \"array\", \"description\": \"Available cabin categories\", \"items\": { \"type\": \"object\", \"properties\": { \"category\": { \"type\": \"string\", \"description\": \"Cabin category name\" }, \"price_from\": { \"type\": [\"string\", \"null\"], \"description\": \"Starting price with currency symbol\" }, \"features\": { \"type\": \"array\", \"description\": \"Cabin features and amenities\", \"items\": {\"type\": \"string\"} } } } }, \"highlights\": { \"type\": \"array\", \"description\": \"Key cruise highlights or selling points\", \"items\": {\"type\": \"string\"} }, \"included_services\": { \"type\": \"array\", \"description\": \"Services included in the cruise price\", \"items\": {\"type\": \"string\"} }, \"additional_info\": { \"type\": \"object\", \"properties\": { \"dress_code\": { \"type\": [\"string\", \"null\"], \"description\": \"Dress code policy\" }, \"language\": { \"type\": [\"string\", \"null\"], \"description\": \"Primary language onboard\" }, \"currency\": { \"type\": [\"string\", \"null\"], \"description\": \"Onboard currency\" } } } } }"
        },
        "typeVersion": 1.3
    },
    "tags": [],
    "level": "warning",
    "stack": "NodeOperationError: Model output doesn't fit required format\n    at N8nStructuredOutputParser.parse (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/utils\/output_parsers\/N8nStructuredOutputParser.ts:56:22)\n    at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n    at N8nStructuredOutputParser._callWithConfig (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@langchain+core@0.3.68_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30.1_@o_8765aa945f981de137f9a48155aa0f8f\/node_modules\/@langchain\/core\/dist\/runnables\/base.cjs:232:22)\n    at RunnableSequence.invoke (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@langchain+core@0.3.68_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30.1_@o_8765aa945f981de137f9a48155aa0f8f\/node_modules\/@langchain\/core\/dist\/runnables\/base.cjs:1316:27)\n    at executeChain (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/chains\/ChainLLM\/methods\/chainExecutor.ts:167:19)\n    at processItem (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/chains\/ChainLLM\/methods\/processItem.ts:76:9)\n    at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/chains\/ChainLLM\/ChainLlm.node.ts:80:13\n    at async Promise.allSettled (index 0)\n    at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_fc553bfe732254ec5207074cf9e2ceb7\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/chains\/ChainLLM\/ChainLlm.node.ts:83:26)\n    at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1265:8)",
    "context": {
        "outputParserFailReason": "Model output does not match the expected schema"
    },
    "message": "Model output doesn't fit required format",
    "messages": [],
    "timestamp": 1761575611077,
    "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings",
    "functionality": "regular"
}