{"record":{"id":"fdd43d491d471dfb","repo":"nodejs/node","slug":"icupkg-s-has-mismatched-checksum-for-s","errorCode":null,"errorMessage":"icupkg: %s has mismatched checksum for %s\n","messagePattern":"icupkg: (.+?) has mismatched checksum for (.+?)\n","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"deps/icu-small/source/tools/toolutil/pkgitems.cpp","lineNumber":423,"sourceCode":"        const UDataInfo *poolInfo=nativePool.getDataInfo();\n        if(poolInfo->formatVersion[0]<=1) {\n            fprintf(stderr, \"icupkg: %s is not a pool bundle\\n\", poolName);\n            return;\n        }\n        const int32_t* poolRoot = reinterpret_cast<const int32_t*>(nativePool.getBytes());\n        const int32_t *poolIndexes=poolRoot+1;\n        int32_t poolIndexLength=poolIndexes[URES_INDEX_LENGTH]&0xff;\n        if(!(poolIndexLength>URES_INDEX_POOL_CHECKSUM &&\n             (poolIndexes[URES_INDEX_ATTRIBUTES]&URES_ATT_IS_POOL_BUNDLE))\n        ) {\n            fprintf(stderr, \"icupkg: %s is not a pool bundle\\n\", poolName);\n            return;\n        }\n        if(resData.pRoot[1+URES_INDEX_POOL_CHECKSUM]==poolIndexes[URES_INDEX_POOL_CHECKSUM]) {\n            resData.poolBundleKeys = reinterpret_cast<const char*>(poolIndexes + poolIndexLength);\n            resData.poolBundleStrings = reinterpret_cast<const uint16_t*>(poolRoot + poolIndexes[URES_INDEX_KEYS_TOP]);\n        } else {\n            fprintf(stderr, \"icupkg: %s has mismatched checksum for %s\\n\", poolName, itemName);\n            return;\n        }\n    }\n\n    UBool doCheckParent = ures_enumDependencies(\n        itemName, &resData,\n        resData.rootRes, nullptr, nullptr, 0,\n        check, context,\n        pkg,\n        pErrorCode);\n    if(!doCheckParent) {\n        return;\n    }\n\n    /*\n     * if the bundle attributes are present and the nofallback flag is not set,\n     * then add the parent bundle as a dependency\n     */","sourceCodeStart":405,"sourceCodeEnd":441,"githubUrl":"https://github.com/nodejs/node/blob/1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e/deps/icu-small/source/tools/toolutil/pkgitems.cpp#L405-L441","documentation":"Warning printed when the pool checksum in the bundle's root indexes does not match the pool bundle's checksum. Pool bundles share keys and strings between bundles, and the checksum ensures they were generated together. A mismatch means the pool bundle is from a different build or different data, making it unsafe to use. The function returns without setting an error code, skipping pool integration.","triggerScenarios":"resData.pRoot[1+URES_INDEX_POOL_CHECKSUM] != poolIndexes[URES_INDEX_POOL_CHECKSUM] at pkgitems.cpp:423 — the checksum stored in the dependent bundle doesn't match the pool's checksum.","commonSituations":"Pool.res was regenerated but dependent bundles were not (or vice versa); mixing .res files from different builds; partial build where pool changed but bundles referencing it weren't rebuilt; using a prebuilt ICU data package that was assembled from incompatible pieces.","solutions":["Do a full clean rebuild of the entire ICU data package so pool.res and all dependent bundles are generated together.","Remove stale .res files before rebuilding to prevent the build system from mixing old and new outputs.","Ensure the build system tracks pool.res as a dependency of all bundles that use it."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":"// Check stderr for checksum mismatch warning\nresult = subprocess.run(['icupkg', 'data.dat'], capture_output=True)\nstderr = result.stderr.decode()\nif 'mismatched checksum' in stderr:\n    print('Pool and bundles are from different builds — full rebuild needed')","preventionTips":["Always do a clean full rebuild of ICU data so pool.res and dependent bundles are consistent.","Delete all .res files before rebuilding to prevent stale files from mixing in.","Never copy individual .res files between builds without rebuilding the pool."],"tags":["icu","resource-bundle","pool-bundle","checksum","mismatch","build-consistency"],"backgroundTag":null,"analyzedSha":"1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e","analyzedAt":"2026-08-13T00:53:24.642Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}