AF02
Retired. Nothing emits this code any more.
You are most likely here from a message printed by an older build. The page stays because that message stays in the wild.
What it used to mean
Attaform refused five Zod kinds at useForm(...): z.promise, z.function, z.map, z.symbol, and z.templateLiteral. Each had a reason at the time. A Map had no obvious form encoding; symbols are not JSON-serializable; a Promise is a pending box and a callback is behaviour rather than form state.
None of those reasons survived the question they were really answering, which is not "can Attaform describe this?" but "is this the developer's call to make?" Attaform is a public library. It cannot predict the use cases that will show up, and a field whose value is unusual is a field its author chose on purpose. If a symbol needs serializing before it crosses the wire, that is work for the handleSubmit callback, not grounds for refusing the schema at mount.
What happens now
Every Zod kind is accepted. Each one gets a blank value and a write gate, and the ones with no canonical empty member (z.symbol, z.function, z.promise) simply start absent until you write to them. The schema contract lists the blank derived for every kind.
One rule remains, and it is about shape rather than kinds: the schema root has to be able to hold keys, because a form is a set of addressable fields. That is AF15. Every kind is welcome under a key.
If you saw this from an older build
Upgrade Attaform and the schema that was refused will mount as written. Nothing in your schema needs reshaping.