{"record":{"id":"cfbc0c62b6a03138","repo":"medusajs/medusa","slug":"invalid-data-cfbc0c","errorCode":"invalid_data","errorMessage":"Unable to assign cart to disabled Sales Channel: ${salesChannel.name}","messagePattern":"Unable to assign cart to disabled Sales Channel: (.+?)","errorType":"validation","errorClass":"MedusaError","httpStatus":400,"severity":"error","filePath":"packages/core/core-flows/src/cart/steps/find-sales-channel.ts","lineNumber":81,"sourceCode":"    if (data.salesChannelId) {\n      salesChannel = await fetchSalesChannel(data.salesChannelId, container)\n    } else if (!isDefined(data.salesChannelId)) {\n      const [store] = await fetchStore(container)\n\n      if (store?.default_sales_channel_id) {\n        salesChannel = await fetchSalesChannel(\n          store.default_sales_channel_id,\n          container\n        )\n      }\n    }\n\n    if (!salesChannel) {\n      return new StepResponse(null)\n    }\n\n    if (salesChannel?.is_disabled) {\n      throw new MedusaError(\n        MedusaError.Types.INVALID_DATA,\n        `Unable to assign cart to disabled Sales Channel: ${salesChannel.name}`\n      )\n    }\n\n    return new StepResponse(salesChannel)\n  }\n)\n","sourceCodeStart":63,"sourceCodeEnd":90,"githubUrl":"https://github.com/medusajs/medusa/blob/5e06e544a296b9033f20f71f11c559f81a0e5739/packages/core/core-flows/src/cart/steps/find-sales-channel.ts#L63-L90","documentation":"getRunningTransaction in the Redis engine resolves the flow from the MedusaWorkflow registry; an unregistered workflowId throws a plain Error naming the missing id. The registry is per-process, so the workflow must be imported where the call runs.","triggerScenarios":"Calling getRunningTransaction with an id not registered via createWorkflow in the current process — typo, unimported module, or engine in a separate deployment.","commonSituations":"Status/inspection services that read workflow ids from the database but never import the definitions; multi-process deployments splitting registration and inspection.","solutions":["Import the workflow module in the inspecting process","Use the exported workflow's id constant","Route lookups through a service that has the workflow registered"],"exampleFix":"// before\nawait engine.getRunningTransaction(storedId, txId)\n// after\nif (!MedusaWorkflow.getWorkflow(storedId)) throw new Error(`Unknown workflow ${storedId}`)\nawait engine.getRunningTransaction(storedId, txId)","handlingStrategy":"type-guard","validationCode":"if (!MedusaWorkflow.getWorkflow(workflowId)) throw new Error(`workflow ${workflowId} not registered here`)\nawait engine.getRunningTransaction(workflowId, transactionId)","typeGuard":"const isRegistered = (id: string) => Boolean(MedusaWorkflow.getWorkflow(id))","tryCatchPattern":"catch (e) { if (e.message.includes('not found')) return notFound(); throw e }","preventionTips":["Import workflow modules in any process that inspects transactions"],"tags":["workflow-engine","redis","workflow-registry","not-found"],"backgroundTag":"workflow-not-registered","analyzedSha":"5e06e544a296b9033f20f71f11c559f81a0e5739","analyzedAt":"2026-08-27T07:24:39.599Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}