mvanhorn/last30days-skill · error · SystemExit
delivery_channel must be an https:// URL, got {value!r}
Error message
delivery_channel must be an https:// URL, got {value!r} What it means
Error "delivery_channel must be an https:// URL, got {value!r}" thrown in mvanhorn/last30days-skill.
Source
Thrown at skills/last30days/scripts/watchlist.py:264
run_id,
status="failed",
error_message=f"Invalid JSON output: {exc}",
duration_seconds=duration,
)
return {"topic": topic["name"], "status": "failed", "error": f"parse error: {exc}"}
def cmd_config(args):
if args.key == "budget":
store.set_setting("daily_budget", str(args.value))
print(json.dumps({"action": "config", "key": "daily_budget", "value": str(args.value)}))
return
if args.key == "delivery":
value = str(args.value)
# Reject a non-https channel at write time so the operator gets
# immediate feedback, rather than discovering it via a stderr line
# buried in a research run hours later. Matches the delivery-time guard
# in _deliver_findings.
if value and urllib.parse.urlparse(value).scheme != "https":
raise SystemExit(f"delivery_channel must be an https:// URL, got {value!r}")
store.set_setting("delivery_channel", value)
print(json.dumps({"action": "config", "key": "delivery_channel", "value": value}))
return
raise SystemExit(f"Unknown config key: {args.key}")
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="Manage the last30days watchlist")
sub = parser.add_subparsers(dest="command")
add = sub.add_parser("add")
add.add_argument("topic")
add.add_argument("--schedule")
add.add_argument("--weekly", action="store_true")
add.add_argument("--queries")
add.set_defaults(func=cmd_add)
remove = sub.add_parser("remove")View on GitHub (pinned to c7460f6114)
Solutions
- Pass an https:// URL for the delivery channel, e.g. watchlist.py config delivery https://example.com/webhook.
- Use an empty value to clear the delivery channel if you do not want delivery configured.
When it happens
Trigger: Fires when the user sets the watchlist delivery_channel config key to a value that is not an https:// URL. Plain http:// URLs, bare hostnames, webhook paths without scheme, or empty strings all fail this validation.
Common situations: See trigger scenarios.
AI-assisted analysis of mvanhorn/last30days-skill@c7460f6114 (2026-08-15).
Data as JSON: /api/errors/cc4a702753cf6e20.
Report an issue: GitHub.