fierDeToiMonGrand
01/09/2026, 8:33 PMcrawlee@3.12.1 with apify@^3.0.0 (3.2.6), I encounter two blocking issues
1. TypeScript compilation error - Type mismatch in proxy configuration:
typescript
const proxyConfiguration = await Actor.createProxyConfiguration();
const crawler = new CheerioCrawler({
proxyConfiguration: proxyConfiguration, // ❌ Type error
requestHandler: router,
});
2. Runtime error when running locally (even after ignoring TypeScript with as any):
Error: Detected incompatible Crawlee version used by the SDK.
User installed 3.12.1 but the SDK uses 3.15.3.
at checkCrawleeVersion (node_modules/apify/utils.js:68)
at Actor.init (node_modules/apify/main.js:123)
### Why I Need 3.12.1 Specifically
Cost Impact: For the same run with identical input, Crawlee 3.15.3 generates roughly double the request queue writes compared to 3.12.1:
(See attached screenshot)
I don't know what changed between these versions, but 3.15.3 is significantly more expensive to run.
### My Current Solution (Need Validation)
To force deduplication locally and replicate Apify's behavior, I added npm overrides to package.json:
json
{
"dependencies": {
"apify": "^3.0.0",
"crawlee": "3.12.1"
},
"overrides": {
"@crawlee/core": "3.12.1",
"@crawlee/types": "3.12.1",
"@crawlee/utils": "3.12.1"
}
}
### My Questions
1. Is using npm "overrides" the correct approach here? Will this cause issues when deploying to Apify platform?
2. Why does Crawlee 3.15.3 generate 2x more request queue writes than 3.12.1? What changed between these versions that causes this cost increase?
https://cdn.discordapp.com/attachments/1459284049213390930/1459284049670439085/image.png?ex=697bc42d&is=697a72ad&hm=cdbd36bd99fd062bbd4206205376088a70de3b9b6f17430b956ddad86820a2a1&
https://cdn.discordapp.com/attachments/1459284049213390930/1459284050295656488/image.png?ex=697bc42d&is=697a72ad&hm=89afe8139411796d65547e38c74c182e5726b16c91336a58baa1f3bc2b4e523d&Nazar Hrozia
01/12/2026, 9:50 AMfierDeToiMonGrand
01/14/2026, 4:57 PMjavascript
router.addHandler(labels.START, async ({ crawler, request }) => {
const urls = [
{ url: 'some-url', label: 'some-label' }
];
await crawler.addRequests(urls); // <--- Here
});
- It would be good to mention in the docs that using V1 is cheaper than V2.
- Are there any other new features or changes in recent Crawlee versions that could increase operation costs that we should be aware of?Nazar Hrozia
01/16/2026, 11:43 AM