diff --git a/cmd/checkout/klarna-handlers.go b/cmd/checkout/klarna-handlers.go index af98af9..3e6aec8 100644 --- a/cmd/checkout/klarna-handlers.go +++ b/cmd/checkout/klarna-handlers.go @@ -257,7 +257,7 @@ func (a *CheckoutPoolServer) getGrainFromKlarnaOrder(ctx context.Context, order if !ok { return nil, fmt.Errorf("invalid cart id in order reference: %s", order.MerchantReference1) } - grain, err := a.Get(ctx, uint64(cartId)) + grain, err := a.getAnywhere(ctx, uint64(cartId)) if err != nil { return nil, fmt.Errorf("failed to get cart grain: %w", err) } diff --git a/cmd/checkout/main.go b/cmd/checkout/main.go index 5522ada..6849632 100644 --- a/cmd/checkout/main.go +++ b/cmd/checkout/main.go @@ -79,6 +79,11 @@ func main() { grainSpawns.Inc() ret := checkout.NewCheckoutGrain(id, 0, 0, time.Now(), nil) // version to be set later + // Load persisted events/state for this checkout if present + if err := diskStorage.LoadEvents(ctx, id, ret); err != nil { + // Return the grain along with error (e.g., not found) so callers can decide + return ret, err + } return ret, nil }, Destroy: func(grain actor.Grain[checkout.CheckoutGrain]) error {