{"version":"2.1.242","anchor":"template-uploads-are-digest-pinned-and-size-capped","canonical_anchor":"template-uploads-are-digest-pinned-and-size-capped","heading":"Template uploads are digest-pinned and size-capped","tier":"internal","area":"Hooks","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/template-uploads-are-digest-pinned-and-size-capped","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Template uploads are digest-pinned and size-capped\n\nUploaded hook templates are checked against registered digests and refused with specific reasons.\n\n**What**\n\nEvery uploaded hook template is checked against the id and digests already registered before its bytes are kept. Unknown ids, digest or version mismatches, oversized bodies and malformed base64 each get their own refusal message, and re-uploading a digest already held answers \"already stored\" rather than storing it again.\n\n**Details**\n\n- The request handler caps registration at 64 KiB and uploads at 400 KB, and rejects requests tagged with an out-of-date worker generation.\n- Same account-flag and policy gate as the template runner.\n\n**Evidence**\n\n`invalid_upload: request larger than 400 KB`\n\n- Area: Hooks\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 3\/5\n- Present in the build but not switched on"}