HelloZeroNet/ZeroNet · error · VerifyError
File not allowed: %s
Error message
File not allowed: %s
What it means
VerifyError raised during verifyContentInclude when a file listed in the include's content.json violates the parent's 'files_allowed' filename rules. The input at fault is file_inner_path that does not match the whitelist patterns declared in the signing rules, so the include content cannot be accepted.
Source
Thrown at src/Content/ContentManager.py:915
if not rules:
raise VerifyError("No rules")
# Check include size limit
if rules.get("max_size") is not None: # Include size limit
if content_size > rules["max_size"]:
raise VerifyError("Include too large %sB > %sB" % (content_size, rules["max_size"]))
if rules.get("max_size_optional") is not None: # Include optional files limit
if content_size_optional > rules["max_size_optional"]:
raise VerifyError("Include optional files too large %sB > %sB" % (
content_size_optional, rules["max_size_optional"])
)
# Filename limit
if rules.get("files_allowed"):
for file_inner_path in list(content["files"].keys()):
if not SafeRe.match(r"^%s$" % rules["files_allowed"], file_inner_path):
raise VerifyError("File not allowed: %s" % file_inner_path)
if rules.get("files_allowed_optional"):
for file_inner_path in list(content.get("files_optional", {}).keys()):
if not SafeRe.match(r"^%s$" % rules["files_allowed_optional"], file_inner_path):
raise VerifyError("Optional file not allowed: %s" % file_inner_path)
# Check if content includes allowed
if rules.get("includes_allowed") is False and content.get("includes"):
raise VerifyError("Includes not allowed")
return True # All good
# Verify file validity
# Return: None = Same as before, False = Invalid, True = Valid
def verifyFile(self, inner_path, file, ignore_same=True):
if inner_path.endswith("content.json"): # content.json: Check using sign
from Crypt import CryptBitcoin
try:View on GitHub (pinned to 454c0b2e7e)
Solutions
- Remove or rename the offending file so its inner path matches the files_allowed patterns
- Update the parent site's rules (files_allowed in content.json) and re-sign if the file is legitimately needed
- Catch VerifyError in verifyContent and reject the include with a descriptive message
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/Content/ContentManager.py:915 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of HelloZeroNet/ZeroNet@454c0b2e7e (2026-09-02).
Data as JSON: /api/errors/90191fd33a2e8872.
Report an issue: GitHub.