diff --git a/java/google/registry/flows/FlowComponent.java b/java/google/registry/flows/FlowComponent.java index 2961c0b3c..8b06c8487 100644 --- a/java/google/registry/flows/FlowComponent.java +++ b/java/google/registry/flows/FlowComponent.java @@ -118,8 +118,10 @@ public interface FlowComponent { /** Module to delegate injection of a desired {@link Flow}. */ @Module static class FlowComponentModule { + // WARNING: @FlowScope is intentionally omitted here so that we get a fresh Flow instance on + // each call to Provider.get(), to avoid Flow instance re-use upon transaction retries. + // TODO(b/29874464): fix this in a cleaner way. @Provides - @FlowScope static Flow provideFlow(FlowComponent flows, Class clazz) { return clazz.equals(ContactCheckFlow.class) ? flows.contactCheckFlow() : clazz.equals(ContactCreateFlow.class) ? flows.contactCreateFlow()