medusajs/medusa · error · MedusaError

INVALID_DATA

INVALID_DATA

Error message

No request to add item for claim ${input.claim_id} in order change ${orderChange.id}

What it means

Thrown when updating a claim's add-item request: no order change action with the given action_id exists in the order change for that claim. The workflow looks up the pending ITEM_ADD action to modify; if it can't be found, the input is invalid.

Source

Thrown at packages/core/core-flows/src/order/workflows/claim/update-claim-add-item.ts:108

  async function (
    {
      order,
      orderChange,
      orderClaim,
      input,
    }: UpdateClaimAddNewItemValidationStepInput,
    context
  ) {
    throwIfIsCancelled(order, "Order")
    throwIfIsCancelled(orderClaim, "Claim")
    throwIfOrderChangeIsNotActive({ orderChange })

    const associatedAction = (orderChange.actions ?? []).find(
      (a) => a.id === input.action_id
    ) as OrderChangeActionDTO

    if (!associatedAction) {
      throw new MedusaError(
        MedusaError.Types.INVALID_DATA, 
        `No request to add item for claim ${input.claim_id} in order change ${orderChange.id}`
      )
    } else if (associatedAction.action !== ChangeActionType.ITEM_ADD) {
      throw new MedusaError(
        MedusaError.Types.INVALID_DATA,
        `Action ${associatedAction.id} is not adding an item`
      )
    }
  }
)

const orderFields = [
  ...fieldsToComputeAdjustmentsForPreview,
  "status",
  "canceled_at",
]

View on GitHub (pinned to 5e06e544a2)

Solutions

  1. Confirm the claim is still in a pending order change (not yet confirmed)
  2. Re-fetch the claim's order change actions and use a valid action_id of type ITEM_ADD
  3. If the claim was confirmed, create a new claim instead of updating the old one
Defensive patterns

Strategy: validation

Validate before calling

const action = (orderChange.actions ?? []).find((a) => a.id === input.action_id)
if (!action || action.action !== ChangeActionType.ITEM_ADD) {
  // refresh claim data instead of calling the workflow
}

Type guard

const isItemAddAction = (a?: OrderChangeActionDTO) =>
  !!a && a.action === ChangeActionType.ITEM_ADD

Try / catch

try { await updateClaimAddItemWorkflow(scope).run({ input }) } catch (e) { if (/No request to add item/.test(e.message)) await refetchClaim() else throw e }

Prevention

When it happens

Trigger: Calling updateClaimAddItemWorkflow with an action_id that doesn't match any action in the claim's order change — e.g. after the claim was confirmed (order change no longer pending) or the action belongs to a different claim/exchange.

Common situations: Editing a claim item in the admin after the claim was confirmed; passing an action id from a different order change; deleted/expired action id from stale UI state.

Related errors


AI-assisted analysis of medusajs/medusa@5e06e544a2 (2026-08-27). Data as JSON: /api/errors/33bada2f9e667ee7. Report an issue: GitHub.