From 3af837d824301db96f426847c5679afac6de87be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mats=20T=C3=B6rnberg?= Date: Wed, 3 Dec 2025 22:30:13 +0100 Subject: [PATCH] load prev state --- cmd/checkout/klarna-handlers.go | 2 +- cmd/checkout/main.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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 {