diff --git a/packages/effect-fc/src/Form.ts b/packages/effect-fc/src/Form.ts
index 26a1e6b..8d032ba 100644
--- a/packages/effect-fc/src/Form.ts
+++ b/packages/effect-fc/src/Form.ts
@@ -156,13 +156,14 @@ export const submit = (
Effect.andThen(identity),
Effect.tap(Ref.set(self.submitStateRef, AsyncData.loading())),
Effect.andThen(flow(
- self.submit,
+ self.submit as (value: NoInfer) => Effect.Effect,
+ Effect.tapErrorTag("ParseError", e => Ref.set(self.errorRef, Option.some(e as ParseResult.ParseError))),
Effect.exit,
Effect.map(Exit.match({
onSuccess: a => AsyncData.success(a),
- onFailure: e => AsyncData.failure(e),
+ onFailure: e => AsyncData.failure(e as Cause.Cause),
})),
- Effect.tap(v => Ref.set(self.submitStateRef, v))
+ Effect.tap(v => Ref.set(self.submitStateRef, v)),
)),
),