{"record":{"id":"1cd47d984ba1a773","repo":"appsmithorg/appsmith","slug":"failed-to-load-js-libraries","errorCode":null,"errorMessage":"Failed to load JS libraries","messagePattern":"Failed to load JS libraries","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"app/client/src/sagas/EvaluationsSaga.ts","lineNumber":213,"sourceCode":"): any {\n  const evalWorkerListenerChannel = yield call(setupWorkers, true);\n\n  // Take the action from the appVi\n  const jsLibrariesAction = yield take(initializeJSLibrariesChannel);\n  const { applicationId, customJSLibraries } = jsLibrariesAction.payload;\n\n  yield put(setIsFirstPageLoad());\n\n  // Use failFastApiCalls to execute fetchJSLibraries\n  const resultOfJSLibrariesCall: boolean = yield call(\n    failFastApiCalls,\n    [fetchJSLibraries(applicationId, customJSLibraries)],\n    [ReduxActionTypes.FETCH_JS_LIBRARIES_SUCCESS],\n    [ReduxActionErrorTypes.FETCH_JS_LIBRARIES_FAILED],\n  );\n\n  if (!resultOfJSLibrariesCall) {\n    throw new Error(\"Failed to load JS libraries\");\n  }\n\n  yield spawn(handleEvalWorkerRequestSaga, evalWorkerListenerChannel);\n}\n\nexport function* updateDataTreeHandler(\n  data: {\n    evalTreeResponse: EvalTreeResponseData;\n    unevalTree: UnEvalTree;\n    requiresLogging: boolean;\n    configTree: ConfigTree;\n  },\n  postEvalActions?: Array<AnyReduxAction>,\n) {\n  const { configTree, evalTreeResponse, requiresLogging, unevalTree } = data;\n  const postEvalActionsToDispatch: Array<AnyReduxAction> =\n    postEvalActions || [];\n","sourceCodeStart":195,"sourceCodeEnd":231,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/client/src/sagas/EvaluationsSaga.ts#L195-L231","documentation":"Error thrown when failFastApiCalls reports that FETCH_JS_LIBRARIES_FAILED won. The eval worker cannot continue without the configured JS libraries (lodash, moment, dayjs, etc.) injected, so the saga aborts before spawning the eval worker request handler. This is a load-time gate, not a runtime eval failure.","triggerScenarios":"The /libraries endpoint returns an error, a library script fails to load inside the worker, the CDN for a pinned library version is unreachable, or a corporate proxy blocks the library URL.","commonSituations":"Air-gapped / proxied environments; library version deprecated upstream; first load after adding a new JS library that 404s; browser extension blocking third-party scripts.","solutions":["Open DevTools Network and look for the failing /libraries request or the worker's library script load (note the status code).","Remove recently added JS libraries from the app settings and re-add the correct version.","If behind a proxy, allow-list the JS library CDN domains.","Clear browser cache / hard reload so stale library metadata isn't served."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Allow-list JS library CDN domains on corporate proxies.","Keep the JS libraries list lean; remove unused entries.","Pin library versions known to load reliably."],"tags":["js-libraries","evaluation","network","load-time"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}