Thrown when an effect completes with a returned output its declaration doesn't
allow — an undeclared key or a value that doesn't fit the declared shape. The
declared outputs are a strict allowlist bounding what an effect may persist
onto its effectHistory entry, so the completion does NOT commit rather than silently
storing off-contract data. An effect that declares no outputs has an EMPTY
allowlist (produces nothing), so any returned output fails here.
Thrown when an effect completes with a returned output its declaration doesn't allow — an undeclared key or a value that doesn't fit the declared shape. The declared
outputsare a strict allowlist bounding what an effect may persist onto itseffectHistoryentry, so the completion does NOT commit rather than silently storing off-contract data. An effect that declares nooutputshas an EMPTY allowlist (produces nothing), so any returned output fails here.