Job runs

Every worker writes here. Failed runs should include structured errors.

JobStatusItemsStartedErrors
feature_canonicalizesuccess545/16/2026, 5:07:09 PM[]
trustpilot_scrapefailed05/16/2026, 2:50:55 PM[{"stack":"Error: Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}\n at runApifyTrustpilot (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:125:23)","message":"Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}","competitor_id":"cc82f86a-8335-449e-8d43-b3f1570bb018","competitor_name":"ServiceTitan"},{"stack":"Error: Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}\n at runApifyTrustpilot (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:125:23)","message":"Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}","competitor_id":"43604d8f-ef3c-449b-b278-3e343bdb248e","competitor_name":"Jobber"},{"stack":"Error: Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}\n at runApifyTrustpilot (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:125:23)","message":"Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}","competitor_id":"40512657-76f9-4150-b09e-95cc87b18e49","competitor_name":"Housecall Pro"}]
pipelinesuccess15/16/2026, 2:50:54 PM[]
content_generatesuccess165/16/2026, 2:37:47 PM[]
content_generatesuccess165/16/2026, 2:30:17 PM[]
gap_analyzesuccess125/16/2026, 2:29:43 PM[]
clustersuccess375/16/2026, 2:25:36 PM[]
clustersuccess05/16/2026, 2:23:13 PM[]
clusterfailed05/16/2026, 2:11:50 PM[{"stack":"Error: Voyage embeddings failed: 429 {\"detail\":\"You have not yet added your payment method in the billing page and will have reduced rate limits of 3 RPM and 10K TPM. To unlock our standard rate limits, please add a payment method in the billing page for the appropriate organization in the user dashboard (https://dashboard.voyageai.com/). Even with payment methods entered, the free tokens (200M tokens for Voyage series 3) will still apply. After adding a payment method, you should see your rate limits increase after several minutes. See our pricing docs (https://docs.voyageai.com/docs/pricing) for the free tokens for your model.\"}\n at embedBatch (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/clusterer.ts:44:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/clusterer.ts:179:21)","message":"Voyage embeddings failed: 429 {\"detail\":\"You have not yet added your payment method in the billing page and will have reduced rate limits of 3 RPM and 10K TPM. To unlock our standard rate limits, please add a payment method in the billing page for the appropriate organization in the user dashboard (https://dashboard.voyageai.com/). Even with payment methods entered, the free tokens (200M tokens for Voyage series 3) will still apply. After adding a payment method, you should see your rate limits increase after several minutes. See our pricing docs (https://docs.voyageai.com/docs/pricing) for the free tokens for your model.\"}"}]
feature_extractfailed85/16/2026, 2:00:53 PM[{"kind":"quote_validation","attempt":1,"competitor":"Housecall Pro","missing_count":7},{"kind":"quote_validation","attempt":2,"competitor":"Housecall Pro","missing_count":8},{"kind":"quote_validation","attempt":3,"competitor":"Housecall Pro","missing_count":7},{"kind":"quote_validation","attempt":1,"competitor":"Housecall Pro","missing_count":3},{"kind":"quote_validation","attempt":2,"competitor":"Housecall Pro","missing_count":3},{"kind":"quote_validation","attempt":3,"competitor":"Housecall Pro","missing_count":3},{"kind":"quote_validation","attempt":1,"competitor":"Housecall Pro","missing_count":1},{"kind":"quote_validation","attempt":2,"competitor":"Housecall Pro","missing_count":1},{"kind":"quote_validation","attempt":3,"competitor":"Housecall Pro","missing_count":1},{"kind":"call_failed","stack":"Error: Tool input did not match feature extraction shape.\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:167:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractFeaturesWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:201:18)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:317:52)","attempt":1,"message":"Tool input did not match feature extraction shape.","competitor":"ServiceTitan"},{"kind":"call_failed","stack":"Error: Tool input did not match feature extraction shape.\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:167:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractFeaturesWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:201:18)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:317:52)","attempt":2,"message":"Tool input did not match feature extraction shape.","competitor":"ServiceTitan"},{"kind":"call_failed","stack":"Error: Tool input did not match feature extraction shape.\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:167:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractFeaturesWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:201:18)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/feature-extractor.ts:317:52)","attempt":3,"message":"Tool input did not match feature extraction shape.","competitor":"ServiceTitan"},{"kind":"quote_validation","attempt":1,"competitor":"ServiceTitan","missing_count":6},{"kind":"quote_validation","attempt":2,"competitor":"ServiceTitan","missing_count":7},{"kind":"quote_validation","attempt":3,"competitor":"ServiceTitan","missing_count":6}]
trustpilot_scrapefailed05/16/2026, 1:49:32 PM[{"stack":"Error: Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}\n at runApifyTrustpilot (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:125:23)","message":"Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}","competitor_id":"cc82f86a-8335-449e-8d43-b3f1570bb018","competitor_name":"ServiceTitan"},{"stack":"Error: Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}\n at runApifyTrustpilot (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:125:23)","message":"Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}","competitor_id":"43604d8f-ef3c-449b-b278-3e343bdb248e","competitor_name":"Jobber"},{"stack":"Error: Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}\n at runApifyTrustpilot (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/trustpilot-scraper.ts:125:23)","message":"Apify Trustpilot run failed: 403 {\n \"error\": {\n \"type\": \"actor-is-not-rented\",\n \"message\": \"You must rent a paid Actor in order to run it after its free trial has expired. To rent this Actor, go to https://console.apify.com/actors/61WFZGx48ladiqz3t\"\n }\n}","competitor_id":"40512657-76f9-4150-b09e-95cc87b18e49","competitor_name":"Housecall Pro"}]
ai_processorsuccess15/16/2026, 1:46:26 PM[]
ai_processorfailed15/16/2026, 1:42:25 PM[{"kind":"call_failed","stack":"Error: Tool input did not match pain point extraction shape.\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:146:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:191:16)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:319:33)","attempt":1,"message":"Tool input did not match pain point extraction shape.","raw_content_id":"a6169d40-11cd-4796-b04d-7217449b99a5"},{"kind":"call_failed","stack":"Error: Tool input did not match pain point extraction shape.\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:146:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:191:16)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:319:33)","attempt":2,"message":"Tool input did not match pain point extraction shape.","raw_content_id":"a6169d40-11cd-4796-b04d-7217449b99a5"},{"kind":"call_failed","stack":"Error: Tool input did not match pain point extraction shape.\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:146:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:191:16)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:319:33)","attempt":3,"message":"Tool input did not match pain point extraction shape.","raw_content_id":"a6169d40-11cd-4796-b04d-7217449b99a5"}]
ai_processorsuccess15/16/2026, 1:32:34 PM[]
ai_processorsuccess15/16/2026, 1:28:38 PM[]
ai_processorsuccess15/16/2026, 1:20:50 PM[]
ai_processorsuccess15/16/2026, 1:20:01 PM[]
ai_processorsuccess15/16/2026, 1:15:18 PM[]
ai_processorfailed05/16/2026, 12:08:21 PM[{"stack":"SyntaxError: Expected ',' or ']' after array element in JSON at position 14132 (line 242 column 6)\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:40:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:81:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:111:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:157:33)","message":"Expected ',' or ']' after array element in JSON at position 14132 (line 242 column 6)","raw_content_id":"a6169d40-11cd-4796-b04d-7217449b99a5"}]
ai_processorfailed35/16/2026, 1:34:45 AM[{"stack":"SyntaxError: Expected ',' or ']' after array element in JSON at position 13914 (line 242 column 6)\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:39:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:80:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:110:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:144:33)","message":"Expected ',' or ']' after array element in JSON at position 13914 (line 242 column 6)","raw_content_id":"a6169d40-11cd-4796-b04d-7217449b99a5"},{"attempt":1,"examples":[{"exact_quote":"the pricing design uses what sales experts call a disguised anchoring tactic, which means that they lead with the discounted number and hiding the commitment language. This deceptive style makes a service look cheap until the bill actually lands in your inbox."}],"missing_count":1,"raw_content_id":"d656a513-3bdb-40ba-9605-aa100cd8dcdd"}]
ai_processorfailed245/16/2026, 1:19:42 AM[{"attempt":1,"examples":[{"exact_quote":"We're a tick tock society today. I hate to say it, but we're, uh, we're a, uh, a very short attention span. So if anything requires, uh, too much, you know, study implementation, it's where we see even challenges"}],"missing_count":1,"raw_content_id":"09361314-9ea5-4485-92c0-dfc1300b891e"},{"stack":"SyntaxError: Expected ',' or ']' after array element in JSON at position 13769 (line 232 column 6)\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:39:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:80:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:110:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:144:33)","message":"Expected ',' or ']' after array element in JSON at position 13769 (line 232 column 6)","raw_content_id":"a6169d40-11cd-4796-b04d-7217449b99a5"},{"attempt":1,"examples":[{"exact_quote":"we also have before and after AI images, uh, which is not available on House Call Pro."},{"exact_quote":"we also have QuickBooks integration. Um, this is not on the basic plan."}],"missing_count":2,"raw_content_id":"f17aaff9-836c-450c-990c-c53686a0ef67"},{"attempt":2,"examples":[{"exact_quote":"we also have QuickBooks integration. Um, this is not on the basic plan."}],"missing_count":1,"raw_content_id":"f17aaff9-836c-450c-990c-c53686a0ef67"},{"attempt":3,"examples":[{"exact_quote":"we also have before and after AI images, uh, which is not available on House Call Pro."}],"missing_count":1,"raw_content_id":"f17aaff9-836c-450c-990c-c53686a0ef67"},{"attempt":1,"examples":[{"exact_quote":"because your CSRs and dispatchers are hyper-focused on today's packed schedule and the next ringing phone, the older quotes eventually just get buried by the new ones."},{"exact_quote":"Most shops have a follow-up process that works great for the first week or two. But because your CSRs and dispatchers are hyper-focused on today's packed schedule and the next ringing phone, the older quotes eventually just get buried by the new ones."}],"missing_count":2,"raw_content_id":"4ad1a962-cdf7-4d10-a74a-31d7c34110e8"},{"attempt":2,"examples":[{"exact_quote":"Most shops have a follow-up process that works great for the first week or two. But because your CSRs and dispatchers are hyper-focused on today's packed schedule and the next ringing phone, the older quotes eventually just get buried by the new ones."}],"missing_count":1,"raw_content_id":"4ad1a962-cdf7-4d10-a74a-31d7c34110e8"},{"attempt":3,"examples":[{"exact_quote":"Most shops have a follow-up process that works great for the first week or two. But because your CSRs and dispatchers are hyper-focused on today's packed schedule and the next ringing phone, the older quotes eventually just get buried by the new ones."}],"missing_count":1,"raw_content_id":"4ad1a962-cdf7-4d10-a74a-31d7c34110e8"},{"attempt":1,"examples":[{"exact_quote":"it just always seemed so disorganized and there was never really a great system"}],"missing_count":1,"raw_content_id":"a2122afe-ca78-4def-958a-fa228cebaa43"},{"attempt":2,"examples":[{"exact_quote":"it just always seemed so disorganized and there was never really a great system"}],"missing_count":1,"raw_content_id":"a2122afe-ca78-4def-958a-fa228cebaa43"},{"attempt":3,"examples":[{"exact_quote":"it just always seemed so disorganized and there was never really a great system"}],"missing_count":1,"raw_content_id":"a2122afe-ca78-4def-958a-fa228cebaa43"},{"attempt":1,"examples":[{"exact_quote":"instead of using those hundreds of millions of dollars from those investors to build a better, more complete product, a massive chunk of it goes into marketing. sponsoring your favorite influencers to tell you that they love Jobber, running ads that follow you across every website you visit, slapping their logo on race cars."}],"missing_count":1,"raw_content_id":"8c7661d2-bf74-4731-a452-b76dd587808f"},{"attempt":1,"examples":[{"exact_quote":"They force you to integrate with DocuSign at $45 a month on top of your existing Jobber subscription. That's nearly $300 extra per year just to send contracts."},{"exact_quote":"We're not corporate vultures eating away at the profits of hardworking business owners."}],"missing_count":2,"raw_content_id":"cc8ac80f-91ef-4f6f-868d-cf1731f1d618"},{"attempt":2,"examples":[{"exact_quote":"They force you to integrate with DocuSign at $45 a month on top of your existing Jobber subscription. That's nearly $300 extra per year just to send contracts."},{"exact_quote":"We're not corporate vultures eating away at the profits of hardworking business owners."}],"missing_count":2,"raw_content_id":"cc8ac80f-91ef-4f6f-868d-cf1731f1d618"},{"attempt":3,"examples":[{"exact_quote":"They force you to integrate with DocuSign at $45 a month on top of your existing Jobber subscription. That's nearly $300 extra per year just to send contracts."},{"exact_quote":"We're not corporate vultures eating away at the profits of hardworking business owners."}],"missing_count":2,"raw_content_id":"cc8ac80f-91ef-4f6f-868d-cf1731f1d618"}]
youtube_scrape_apifysuccess285/16/2026, 1:14:22 AM[]
ai_processorsuccess85/16/2026, 12:59:04 AM[]
ai_processorfailed255/16/2026, 12:57:13 AM[{"attempt":1,"examples":[{"exact_quote":"'Claude for Small Business' as a category name covers a wider universe than what the package actually addresses on day one."}],"missing_count":1,"raw_content_id":"bb67c166-6fd1-438d-aa0b-4a97a743efc5"},{"attempt":1,"examples":[{"exact_quote":"we haven't had time to get in the weeds on it"}],"missing_count":1,"raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"attempt":2,"examples":[{"exact_quote":"we haven't had time to get in the weeds on it"}],"missing_count":1,"raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"attempt":3,"examples":[{"exact_quote":"we haven't had time to get in the weeds on it"}],"missing_count":1,"raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"attempt":1,"examples":[{"exact_quote":"Recurring cleans & reminders → Automate everything. Client gets a reminder 24 hours before. You get a route sheet the night before. No thinking required."}],"missing_count":1,"raw_content_id":"b62855cc-b787-4ccc-9312-abc4a8277182"}]
ai_processorsuccess65/16/2026, 12:54:52 AM[]
ai_processorfailed255/16/2026, 12:51:04 AM[{"attempt":1,"examples":[{"char_end":218,"char_start":152,"exact_quote":"Revenue landing in the wrong accounts because job types don't map cleanly to QB"},{"char_end":286,"char_start":221,"exact_quote":"Customers or items that exist in ST but not QB creating sync errors"},{"char_end":330,"char_start":289,"exact_quote":"Manual cleanup required after every export"}],"invalid_count":4,"raw_content_id":"8dc6a664-aa05-4ba7-a33a-b233399026d0"},{"attempt":2,"examples":[{"char_end":230,"char_start":152,"exact_quote":"Revenue landing in the wrong accounts because job types don't map cleanly to QB"},{"char_end":298,"char_start":233,"exact_quote":"Customers or items that exist in ST but not QB creating sync errors"},{"char_end":342,"char_start":301,"exact_quote":"Manual cleanup required after every export"}],"invalid_count":4,"raw_content_id":"8dc6a664-aa05-4ba7-a33a-b233399026d0"},{"attempt":3,"examples":[{"char_end":253,"char_start":175,"exact_quote":"Revenue landing in the wrong accounts because job types don't map cleanly to QB"},{"char_end":321,"char_start":256,"exact_quote":"Customers or items that exist in ST but not QB creating sync errors"},{"char_end":365,"char_start":324,"exact_quote":"Manual cleanup required after every export"}],"invalid_count":4,"raw_content_id":"8dc6a664-aa05-4ba7-a33a-b233399026d0"},{"attempt":1,"examples":[{"char_end":3075,"char_start":2868,"exact_quote":"Housecall Pro has one of the cleanest interfaces but is more structured and opinionated in its setup, requiring users to work within predefined categories and folders. This can be restrictive for HVAC companies with highly customized organization systems"},{"char_end":3165,"char_start":3077,"exact_quote":"the platform itself is often more service-business oriented (cleaning, landscaping, etc.)"}],"invalid_count":2,"raw_content_id":"08aefa59-0381-4e64-9de7-991cda67c88e"},{"attempt":2,"examples":[{"char_end":2872,"char_start":2669,"exact_quote":"Housecall Pro has one of the cleanest interfaces but is more structured and opinionated in its setup, requiring users to work within predefined categories and folders. This can be restrictive for HVAC companies with highly customized organization systems"},{"char_end":2963,"char_start":2874,"exact_quote":"the platform itself is often more service-business oriented (cleaning, landscaping, etc.)"}],"invalid_count":2,"raw_content_id":"08aefa59-0381-4e64-9de7-991cda67c88e"},{"attempt":3,"examples":[{"char_end":3055,"char_start":2868,"exact_quote":"more structured and opinionated in its setup, requiring users to work within predefined categories and folders. This can be restrictive for HVAC companies with highly customized organization systems"},{"char_end":3147,"char_start":3057,"exact_quote":"the platform itself is often more service-business oriented (cleaning, landscaping, etc.)"}],"invalid_count":2,"raw_content_id":"08aefa59-0381-4e64-9de7-991cda67c88e"},{"attempt":1,"examples":[{"char_end":1168,"char_start":1050,"exact_quote":"Jobber and Housecall Pro start around $50 a month but are a full service suite that my friend and potentially others don't need."}],"invalid_count":1,"raw_content_id":"a85c79b0-f21f-4cd2-8ab3-35a02af006fa"},{"attempt":2,"examples":[{"char_end":1192,"char_start":1069,"exact_quote":"Jobber and Housecall Pro start around $50 a month but are a full service suite that my friend and potentially others don't need."}],"invalid_count":1,"raw_content_id":"a85c79b0-f21f-4cd2-8ab3-35a02af006fa"},{"attempt":3,"examples":[{"char_end":1192,"char_start":1069,"exact_quote":"Jobber and Housecall Pro start around $50 a month but are a full service suite that my friend and potentially others don't need."}],"invalid_count":1,"raw_content_id":"a85c79b0-f21f-4cd2-8ab3-35a02af006fa"},{"attempt":1,"examples":[{"char_end":117,"char_start":57,"exact_quote":"Most SMBs use 20+. What does that mean for the rest of the stack?"},{"char_end":1889,"char_start":1707,"exact_quote":"E-commerce or DTC brand. Coverage is thin. Shopify isn't there. Stripe isn't there. Klaviyo isn't there. The actual revenue stack of an online store is mostly outside the covered set."},{"char_end":2207,"char_start":1890,"exact_quote":"Local trades (HVAC, plumbing, insulation, electrical, landscaping). Coverage is essentially absent. The operating systems for these businesses are ServiceTitan, Jobber, Housecall Pro, Square for payments, sometimes QuickBooks for accounting on the back end. The customer-facing and operational tools are not on the list."}],"invalid_count":7,"raw_content_id":"bb67c166-6fd1-438d-aa0b-4a97a743efc5"},{"attempt":2,"examples":[{"char_end":91,"char_start":72,"exact_quote":"Most SMBs use 20+."},{"char_end":1868,"char_start":1707,"exact_quote":"Coverage is thin. Shopify isn't there. Stripe isn't there. Klaviyo isn't there. The actual revenue stack of an online store is mostly outside the covered set."},{"char_end":2172,"char_start":1921,"exact_quote":"Coverage is essentially absent. The operating systems for these businesses are ServiceTitan, Jobber, Housecall Pro, Square for payments, sometimes QuickBooks for accounting on the back end. The customer-facing and operational tools are not on the list."}],"invalid_count":7,"raw_content_id":"bb67c166-6fd1-438d-aa0b-4a97a743efc5"},{"attempt":3,"examples":[{"char_end":91,"char_start":72,"exact_quote":"Most SMBs use 20+."},{"char_end":1868,"char_start":1707,"exact_quote":"Coverage is thin. Shopify isn't there. Stripe isn't there. Klaviyo isn't there. The actual revenue stack of an online store is mostly outside the covered set."},{"char_end":2170,"char_start":1921,"exact_quote":"Coverage is essentially absent. The operating systems for these businesses are ServiceTitan, Jobber, Housecall Pro, Square for payments, sometimes QuickBooks for accounting on the back end. The customer-facing and operational tools are not on the list."}],"invalid_count":7,"raw_content_id":"bb67c166-6fd1-438d-aa0b-4a97a743efc5"},{"attempt":1,"examples":[{"char_end":2921,"char_start":2780,"exact_quote":"some advanced features like inventory management and deeper reporting require higher-tier plans, and the Android app receives mixed reviews."},{"char_end":2921,"char_start":2882,"exact_quote":"the Android app receives mixed reviews."}],"invalid_count":2,"raw_content_id":"3ff6ddb9-f2bf-4f90-ad4c-42a0c6256b0b"},{"attempt":2,"examples":[{"char_end":2924,"char_start":2768,"exact_quote":"some advanced features like inventory management and deeper reporting require higher-tier plans, and the Android app receives mixed reviews."},{"char_end":2924,"char_start":2886,"exact_quote":"the Android app receives mixed reviews."}],"invalid_count":2,"raw_content_id":"3ff6ddb9-f2bf-4f90-ad4c-42a0c6256b0b"},{"attempt":3,"examples":[{"char_end":2868,"char_start":2780,"exact_quote":"some advanced features like inventory management and deeper reporting require higher-tier plans"},{"char_end":2912,"char_start":2874,"exact_quote":"the Android app receives mixed reviews"},{"char_end":1600,"char_start":1468,"exact_quote":"it also features one of the least built-out booking platforms that lacks the complexity of alternatives like Jobber and Housecall Pro"}],"invalid_count":8,"raw_content_id":"3ff6ddb9-f2bf-4f90-ad4c-42a0c6256b0b"},{"attempt":1,"examples":[{"char_end":183,"char_start":120,"exact_quote":"scrolling through texts and Venmo to find a 6-month-old invoice"},{"char_end":487,"char_start":330,"exact_quote":"having one place where customer history is searchable when somebody calls about a warranty issue or wants a copy of last spring's invoice for their accountant"},{"char_end":689,"char_start":620,"exact_quote":"the next time you get the \"hey can you resend that March invoice\" text"}],"invalid_count":4,"raw_content_id":"73ecd1db-4709-4613-b4d8-4a27e481eb72"},{"attempt":2,"examples":[{"char_end":183,"char_start":120,"exact_quote":"scrolling through texts and Venmo to find a 6-month-old invoice"},{"char_end":514,"char_start":356,"exact_quote":"having one place where customer history is searchable when somebody calls about a warranty issue or wants a copy of last spring's invoice for their accountant"},{"char_end":961,"char_start":820,"exact_quote":"EPA Section 608 records (sales, leaks, recovery) have to live somewhere defensible. Phone notes aren't going to hold up if it ever comes up."}],"invalid_count":3,"raw_content_id":"73ecd1db-4709-4613-b4d8-4a27e481eb72"},{"attempt":3,"examples":[{"char_end":183,"char_start":120,"exact_quote":"scrolling through texts and Venmo to find a 6-month-old invoice"},{"char_end":496,"char_start":338,"exact_quote":"having one place where customer history is searchable when somebody calls about a warranty issue or wants a copy of last spring's invoice for their accountant"},{"char_end":975,"char_start":921,"exact_quote":"Phone notes aren't going to hold up if it ever comes up"}],"invalid_count":3,"raw_content_id":"73ecd1db-4709-4613-b4d8-4a27e481eb72"},{"attempt":1,"examples":[{"char_end":229,"char_start":183,"exact_quote":"we haven't had time to get in the weeds on it"},{"char_end":298,"char_start":263,"exact_quote":"probably something better out there"}],"invalid_count":2,"raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"attempt":2,"examples":[{"char_end":198,"char_start":152,"exact_quote":"we haven't had time to get in the weeds on it"},{"char_end":257,"char_start":222,"exact_quote":"probably something better out there"}],"invalid_count":2,"raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"attempt":3,"examples":[{"char_end":218,"char_start":172,"exact_quote":"we haven't had time to get in the weeds on it"},{"char_end":279,"char_start":244,"exact_quote":"probably something better out there"}],"invalid_count":2,"raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"attempt":1,"examples":[{"char_end":800,"char_start":622,"exact_quote":"Cancellations → You need a cancellation policy with a 48-hour window AND a waitlist system so cancelled slots get filled automatically. Most people just eat the lost revenue."},{"char_end":980,"char_start":803,"exact_quote":"Same-day schedule changes → Lock your schedule. Clients can request changes 24+ hours out. Same-day changes = same-day reschedule fee or next available slot. You're not a taxi."},{"char_end":1148,"char_start":983,"exact_quote":"Payment tracking → Collect payment at time of service. Period. If you're chasing payments after the fact, you've already lost. Card on file, auto-charge on completion."}],"invalid_count":7,"raw_content_id":"b62855cc-b787-4ccc-9312-abc4a8277182"},{"attempt":2,"examples":[{"char_end":790,"char_start":612,"exact_quote":"Cancellations → You need a cancellation policy with a 48-hour window AND a waitlist system so cancelled slots get filled automatically. Most people just eat the lost revenue."},{"char_end":968,"char_start":793,"exact_quote":"Same-day schedule changes → Lock your schedule. Clients can request changes 24+ hours out. Same-day changes = same-day reschedule fee or next available slot. You're not a taxi."},{"char_end":1135,"char_start":971,"exact_quote":"Payment tracking → Collect payment at time of service. Period. If you're chasing payments after the fact, you've already lost. Card on file, auto-charge on completion."}],"invalid_count":6,"raw_content_id":"b62855cc-b787-4ccc-9312-abc4a8277182"},{"attempt":3,"examples":[{"char_end":746,"char_start":573,"exact_quote":"Cancellations → You need a cancellation policy with a 48-hour window AND a waitlist system so cancelled slots get filled automatically. Most people just eat the lost revenue."},{"char_end":924,"char_start":749,"exact_quote":"Same-day schedule changes → Lock your schedule. Clients can request changes 24+ hours out. Same-day changes = same-day reschedule fee or next available slot. You're not a taxi."},{"char_end":1093,"char_start":927,"exact_quote":"Payment tracking → Collect payment at time of service. Period. If you're chasing payments after the fact, you've already lost. Card on file, auto-charge on completion."}],"invalid_count":7,"raw_content_id":"b62855cc-b787-4ccc-9312-abc4a8277182"},{"attempt":1,"examples":[{"char_end":248,"char_start":196,"exact_quote":"HouseCall Pro works but the costs climb fast once you add techs"},{"char_end":297,"char_start":254,"exact_quote":"ServiceTitan is basically a second mortgage"},{"char_end":148,"char_start":42,"exact_quote":"most tools are either priced for national chains or missing half the features you actually need in the field"}],"invalid_count":3,"raw_content_id":"269da919-c1fd-44ce-b7f3-371bbff65c60"},{"attempt":2,"examples":[{"char_end":235,"char_start":173,"exact_quote":"HouseCall Pro works but the costs climb fast once you add techs"},{"char_end":284,"char_start":241,"exact_quote":"ServiceTitan is basically a second mortgage"},{"char_end":152,"char_start":97,"exact_quote":"missing half the features you actually need in the field"}],"invalid_count":4,"raw_content_id":"269da919-c1fd-44ce-b7f3-371bbff65c60"},{"attempt":3,"examples":[{"char_end":225,"char_start":163,"exact_quote":"HouseCall Pro works but the costs climb fast once you add techs"},{"char_end":273,"char_start":231,"exact_quote":"ServiceTitan is basically a second mortgage"},{"char_end":148,"char_start":42,"exact_quote":"most tools are either priced for national chains or missing half the features you actually need in the field"}],"invalid_count":3,"raw_content_id":"269da919-c1fd-44ce-b7f3-371bbff65c60"},{"attempt":1,"examples":[{"char_end":158,"char_start":100,"exact_quote":"it was a disaster once we hit like 30+ active leads at once"},{"char_end":297,"char_start":233,"exact_quote":"who got a quote, who ghosted, and who needs a follow up this week"},{"char_end":364,"char_start":318,"exact_quote":"that alone stopped so much stuff from slipping"}],"invalid_count":3,"raw_content_id":"1f76d1b3-2b24-4d9c-851d-e717195ede0e"},{"attempt":2,"examples":[{"char_end":205,"char_start":104,"exact_quote":"Tried spreadsheets for way too long, and it was a disaster once we hit like 30+ active leads at once."},{"char_end":416,"char_start":370,"exact_quote":"that alone stopped so much stuff from slipping."},{"char_end":559,"char_start":499,"exact_quote":"I didn't need to watch 10 Youtube tutorials to figure it out."}],"invalid_count":4,"raw_content_id":"1f76d1b3-2b24-4d9c-851d-e717195ede0e"},{"attempt":3,"examples":[{"char_end":198,"char_start":96,"exact_quote":"Tried spreadsheets for way too long, and it was a disaster once we hit like 30+ active leads at once."},{"char_end":416,"char_start":370,"exact_quote":"that alone stopped so much stuff from slipping."},{"char_end":559,"char_start":499,"exact_quote":"I didn't need to watch 10 Youtube tutorials to figure it out."}],"invalid_count":4,"raw_content_id":"1f76d1b3-2b24-4d9c-851d-e717195ede0e"}]
ai_processorfailed05/16/2026, 12:50:08 AM[{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Z7ctmZCagVDPNQcT\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Z7ctmZCagVDPNQcT\"}","raw_content_id":"8dc6a664-aa05-4ba7-a33a-b233399026d0"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Ziq2LM4vjsdnULXb\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Ziq2LM4vjsdnULXb\"}","raw_content_id":"08aefa59-0381-4e64-9de7-991cda67c88e"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5aH4qkbRdiS4vhUMu\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5aH4qkbRdiS4vhUMu\"}","raw_content_id":"9b42feee-38d2-4a02-8f1b-0ecea7be8fc9"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5agNj6d5P1P9G1XFD\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5agNj6d5P1P9G1XFD\"}","raw_content_id":"a85c79b0-f21f-4cd2-8ab3-35a02af006fa"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5b5wJqCkpdit2N3Qk\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5b5wJqCkpdit2N3Qk\"}","raw_content_id":"bb67c166-6fd1-438d-aa0b-4a97a743efc5"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5bXikS5yxf5ioBToT\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5bXikS5yxf5ioBToT\"}","raw_content_id":"7f5e6d52-34a5-4542-84b6-9f114bf812b6"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5bwXXbrj1z762wP5F\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5bwXXbrj1z762wP5F\"}","raw_content_id":"3ff6ddb9-f2bf-4f90-ad4c-42a0c6256b0b"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5cMacocPqGbxCFEi6\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5cMacocPqGbxCFEi6\"}","raw_content_id":"73ecd1db-4709-4613-b4d8-4a27e481eb72"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5cmPZMTJdEbsHxrMj\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5cmPZMTJdEbsHxrMj\"}","raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5dEv9Hp4TaovBseK7\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5dEv9Hp4TaovBseK7\"}","raw_content_id":"b62855cc-b787-4ccc-9312-abc4a8277182"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5ddiyZTNEyoVq1Hhb\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5ddiyZTNEyoVq1Hhb\"}","raw_content_id":"5733dcb7-7aba-4b11-b3ea-31c32e203030"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5e2YMQrV5EtcgKdkM\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5e2YMQrV5EtcgKdkM\"}","raw_content_id":"4b037730-7b6b-4c7b-8da1-efb6a4dd6860"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5eS6uXXko2xCk9rx2\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5eS6uXXko2xCk9rx2\"}","raw_content_id":"269da919-c1fd-44ce-b7f3-371bbff65c60"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5ett8pqTGMJXRvVXp\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5ett8pqTGMJXRvVXp\"}","raw_content_id":"54ca1136-ae2c-493c-a252-f7f3a24913ce"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5fKBUjT6CNF1nwzbJ\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5fKBUjT6CNF1nwzbJ\"}","raw_content_id":"4d359b7c-8f17-453f-9842-b48059883d60"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5fhkGARZeLEWsjLfc\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5fhkGARZeLEWsjLfc\"}","raw_content_id":"9f17fd51-840c-43d8-a6c4-17c1efa7f5f4"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5g6oqDW4nc223LT3o\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5g6oqDW4nc223LT3o\"}","raw_content_id":"7fbf8747-e4e0-49fe-9017-df63d35665a7"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5gcpNbJ11V586gKVz\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5gcpNbJ11V586gKVz\"}","raw_content_id":"c1b56f9f-9487-4560-89a0-db19155215fc"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5hSBSuV2TMCANNYoh\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5hSBSuV2TMCANNYoh\"}","raw_content_id":"63b4dca8-4568-4264-a0e2-f13c466387e5"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5hwSL2NX1cAMYRsAg\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5hwSL2NX1cAMYRsAg\"}","raw_content_id":"eec5705f-f3e6-4dae-8bfd-f80168677ee0"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5iLFYx2tjQMQGpCmE\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5iLFYx2tjQMQGpCmE\"}","raw_content_id":"b333104f-a445-489d-bfcc-f279aa94af8a"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5imJ5BJZ87xEfceeK\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5imJ5BJZ87xEfceeK\"}","raw_content_id":"8e700767-633f-4e19-8a45-bfa0ae7e6255"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5jSE7SqNBYyZnmEN3\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5jSE7SqNBYyZnmEN3\"}","raw_content_id":"1f76d1b3-2b24-4d9c-851d-e717195ede0e"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5jzDhaw4HDMnvHoge\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5jzDhaw4HDMnvHoge\"}","raw_content_id":"c169f21a-361e-425b-a854-2c140d14d353"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5kcvQnTyfG1md4kHW\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5kcvQnTyfG1md4kHW\"}","raw_content_id":"369a22ab-b9fe-48d9-a9fd-82c8ee4a7cc9"}]
ai_processorfailed05/16/2026, 12:50:04 AM[{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5GZxVzKqspM37LjxC\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5GZxVzKqspM37LjxC\"}","raw_content_id":"8dc6a664-aa05-4ba7-a33a-b233399026d0"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5GyWkxcwcYLWtUVdb\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5GyWkxcwcYLWtUVdb\"}","raw_content_id":"08aefa59-0381-4e64-9de7-991cda67c88e"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5HNL4644itRd3GSh3\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5HNL4644itRd3GSh3\"}","raw_content_id":"9b42feee-38d2-4a02-8f1b-0ecea7be8fc9"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Hp7ewdZFCkkqVsGc\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Hp7ewdZFCkkqVsGc\"}","raw_content_id":"a85c79b0-f21f-4cd2-8ab3-35a02af006fa"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5JG9jttf1ajjTznJq\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5JG9jttf1ajjTznJq\"}","raw_content_id":"bb67c166-6fd1-438d-aa0b-4a97a743efc5"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5JmAeodHsDVWP2kL6\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5JmAeodHsDVWP2kL6\"}","raw_content_id":"7f5e6d52-34a5-4542-84b6-9f114bf812b6"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5KAyJ9FTUD2REzaeV\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5KAyJ9FTUD2REzaeV\"}","raw_content_id":"3ff6ddb9-f2bf-4f90-ad4c-42a0c6256b0b"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Kb2JnAd1k86DkurS\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Kb2JnAd1k86DkurS\"}","raw_content_id":"73ecd1db-4709-4613-b4d8-4a27e481eb72"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5L2pQmix1zoyXiX2v\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5L2pQmix1zoyXiX2v\"}","raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5LsfZTYaZCdjH9vL8\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5LsfZTYaZCdjH9vL8\"}","raw_content_id":"b62855cc-b787-4ccc-9312-abc4a8277182"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5MGEUY5sqx6nXXmFw\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5MGEUY5sqx6nXXmFw\"}","raw_content_id":"5733dcb7-7aba-4b11-b3ea-31c32e203030"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Mdokujro8JhBAHYW\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Mdokujro8JhBAHYW\"}","raw_content_id":"4b037730-7b6b-4c7b-8da1-efb6a4dd6860"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5N75ZQZLrdShQbPzf\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5N75ZQZLrdShQbPzf\"}","raw_content_id":"269da919-c1fd-44ce-b7f3-371bbff65c60"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5NdaqD4gpmoHkGo53\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5NdaqD4gpmoHkGo53\"}","raw_content_id":"54ca1136-ae2c-493c-a252-f7f3a24913ce"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5P392tKGRDxtgWynw\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5P392tKGRDxtgWynw\"}","raw_content_id":"4d359b7c-8f17-453f-9842-b48059883d60"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5PRTRaVDtRFH8bfMo\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5PRTRaVDtRFH8bfMo\"}","raw_content_id":"9f17fd51-840c-43d8-a6c4-17c1efa7f5f4"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Pq1n8J1Fp6KwDEVe\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Pq1n8J1Fp6KwDEVe\"}","raw_content_id":"7fbf8747-e4e0-49fe-9017-df63d35665a7"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5QD5pRoR3T5LX34ea\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5QD5pRoR3T5LX34ea\"}","raw_content_id":"c1b56f9f-9487-4560-89a0-db19155215fc"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Qauj8bYrUeqqrZDh\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Qauj8bYrUeqqrZDh\"}","raw_content_id":"63b4dca8-4568-4264-a0e2-f13c466387e5"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5QzU8ZnZSX51CXcHt\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5QzU8ZnZSX51CXcHt\"}","raw_content_id":"eec5705f-f3e6-4dae-8bfd-f80168677ee0"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5RNYDKrKSM4h7s7rL\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5RNYDKrKSM4h7s7rL\"}","raw_content_id":"b333104f-a445-489d-bfcc-f279aa94af8a"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Rnb2QNDiQfoBZCAh\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5Rnb2QNDiQfoBZCAh\"}","raw_content_id":"8e700767-633f-4e19-8a45-bfa0ae7e6255"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5SDdmeihaoQmrnZqX\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5SDdmeihaoQmrnZqX\"}","raw_content_id":"1f76d1b3-2b24-4d9c-851d-e717195ede0e"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5ScSutA1x3kkejtVQ\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5ScSutA1x3kkejtVQ\"}","raw_content_id":"c169f21a-361e-425b-a854-2c140d14d353"},{"stack":"Error: Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5T5yTVS4DjHmdvm5J\"}\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:73:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:87:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:130:33)","message":"Anthropic request failed: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"This model does not support assistant message prefill. The conversation must end with a user message.\"},\"request_id\":\"req_011Cb5L5T5yTVS4DjHmdvm5J\"}","raw_content_id":"369a22ab-b9fe-48d9-a9fd-82c8ee4a7cc9"}]
ai_processorfailed25/16/2026, 12:47:21 AM[{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"8dc6a664-aa05-4ba7-a33a-b233399026d0"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"08aefa59-0381-4e64-9de7-991cda67c88e"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"9b42feee-38d2-4a02-8f1b-0ecea7be8fc9"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"a85c79b0-f21f-4cd2-8ab3-35a02af006fa"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"bb67c166-6fd1-438d-aa0b-4a97a743efc5"},{"stack":"SyntaxError: Unexpected token 'I', \"I need to \"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token 'I', \"I need to \"... is not valid JSON","raw_content_id":"7f5e6d52-34a5-4542-84b6-9f114bf812b6"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"3ff6ddb9-f2bf-4f90-ad4c-42a0c6256b0b"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"73ecd1db-4709-4613-b4d8-4a27e481eb72"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"da6f9aff-be3f-4f18-a338-546eb5869336"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"b62855cc-b787-4ccc-9312-abc4a8277182"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"5733dcb7-7aba-4b11-b3ea-31c32e203030"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"4b037730-7b6b-4c7b-8da1-efb6a4dd6860"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"269da919-c1fd-44ce-b7f3-371bbff65c60"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"54ca1136-ae2c-493c-a252-f7f3a24913ce"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"4d359b7c-8f17-453f-9842-b48059883d60"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"9f17fd51-840c-43d8-a6c4-17c1efa7f5f4"},{"stack":"SyntaxError: Unexpected token 'T', \"The conten\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token 'T', \"The conten\"... is not valid JSON","raw_content_id":"7fbf8747-e4e0-49fe-9017-df63d35665a7"},{"stack":"SyntaxError: Unexpected token 'I', \"I need to \"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token 'I', \"I need to \"... is not valid JSON","raw_content_id":"c1b56f9f-9487-4560-89a0-db19155215fc"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"63b4dca8-4568-4264-a0e2-f13c466387e5"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"eec5705f-f3e6-4dae-8bfd-f80168677ee0"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"b333104f-a445-489d-bfcc-f279aa94af8a"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\"\"... is not valid JSON","raw_content_id":"8e700767-633f-4e19-8a45-bfa0ae7e6255"},{"stack":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n at JSON.parse (<anonymous>)\n at parseClaudeJson (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:29:23)\n at callClaude (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:66:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async extractWithValidation (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:72:20)\n at async <anonymous> (/Users/judecadet/Projects/Content World/apps/workers-ts/src/workers/ai-processor.ts:115:33)","message":"Unexpected token '`', \"```json\n{\n\"... is not valid JSON","raw_content_id":"1f76d1b3-2b24-4d9c-851d-e717195ede0e"}]
reddit_scrape_apifysuccess755/16/2026, 12:41:22 AM[]
hello_worldsuccess15/16/2026, 12:33:51 AM[]