Resolve empty-signature validation
Handle both the client and server rejection paths when no signature data is submitted.
Exact navigationSecure public Delivery Note link → Signature area
What this guide covers
Handle both the client and server rejection paths when no signature data is submitted. This guide follows the supplied Delivery Note module’s live hooks, controller actions, model rules, views and stored side effects.
Exact step-by-step process
- Confirm the page loaded the signature canvas and CDN script.
- Draw a visible signature before selecting Confirm Delivery.
- If the browser alert says a signature is required, draw and submit again.
- If signing still fails, have staff review the note status and `sign_failed` event without sharing the token.
- Retest on a supported browser with JavaScript enabled.
Fields, choices and supported possibilities
- Client check: SignaturePad `isEmpty()`
- Hidden field: `signature`
- Server check rejects an empty value
- Failed server attempt logs `sign_failed`
Code-backed validations and workflow rules
- The server remains authoritative even if client JavaScript is bypassed.
- A failed attempt does not change status to signed.
- An already signed note also rejects another sign operation and returns to sealed view.
Expected result and verification
- A valid non-empty signature is stored once, or the note remains open with an attributable failed-attempt event.
Checks, security and troubleshooting
- Do not disable validation or manually set status to signed.
Stay within the supported flowDo not force database values, expose secure tokens, bypass permission checks, replace a stored signature or invent a status or interface that the supplied code does not implement.
