Drop Runbook

The Phenom media upload and drop service, used for receiving and staging media files from Phenom users.
Audit stamp: Partially Verified — 2026-06-19 — Phenom AI Agent
Partially Verified · 2026-06-19 · Phenom AI Agent
Source: curl https://drop.thephenom.app → HTTP 200 (envoy server, no Cloudflare proxy); /health returns HTML not JSON
C2PA signed · SanMarcSoft AI content credential

What it is

drop.thephenom.app is the Phenom media upload and drop service. It provides an endpoint for users and automated pipelines to upload media files (images, video, documents) to the Phenom platform. It is a core dependency for any content-ingestion or media-provenance workflow. Downtime affects content submission and C2PA signing pipelines.

Deployment chain

Layer Value
URL https://drop.thephenom.app
DNS Cloudflare (DNS-only, grey-cloud) — not CF-proxied; server is envoy
Hosting HTTP service (AWS ECS Fargate or App Runner – verify in AWS console)
Region us-east-1
AWS profile phenom
Storage backend AWS S3 (phenom media bucket, us-east-1)

Note: Confirm the exact hosting mechanism (ECS Fargate service name or App Runner service ARN) via the AWS console under ECS or App Runner in us-east-1.

Common operations

Check service health (App Runner)

aws apprunner list-services \
  --profile phenom \
  --region us-east-1 \
  --query 'ServiceSummaryList[?contains(ServiceName,`drop`)].{Name:ServiceName,Status:Status,URL:ServiceUrl}'

Restart / redeploy (App Runner)

# Get the service ARN first
SERVICE_ARN=$(aws apprunner list-services \
  --profile phenom --region us-east-1 \
  --query 'ServiceSummaryList[?contains(ServiceName,`drop`)].ServiceArn' \
  --output text)

# Trigger a new deployment
aws apprunner start-deployment \
  --service-arn "$SERVICE_ARN" \
  --profile phenom \
  --region us-east-1

Restart / redeploy (ECS Fargate, if applicable)

aws ecs update-service \
  --cluster phenom-dev-cluster \
  --service phenom-drop \
  --force-new-deployment \
  --profile phenom \
  --region us-east-1

Check S3 upload bucket

# List recent uploads to verify ingestion is working
aws s3 ls s3://phenom-media-uploads/ \
  --recursive \
  --human-readable \
  --summarize \
  --profile phenom \
  --region us-east-1 | tail -20

View logs

aws logs tail /aws/apprunner/drop-thephenom-app \
  --follow \
  --profile phenom \
  --region us-east-1

Verify it is working

curl -si https://drop.thephenom.app/ | grep -E "^HTTP|^server"
# Expected: HTTP/2 200, server: envoy (no cf-ray — drop is NOT behind CF proxy)

curl -si https://drop.thephenom.app/health | grep -E "^HTTP"
# Expected: HTTP/2 200 (note: /health returns the app HTML, not a JSON payload)

Common failure modes

Symptom Likely cause Remediation
502 / 503 on upload App Runner or ECS task crashed Check CloudWatch logs; restart service
Upload succeeds but file not in S3 IAM role missing S3 write permissions Check task/service IAM role for s3:PutObject on the media bucket
Large file uploads timeout App Runner request timeout (default 120s) Increase timeout in App Runner service configuration
Cloudflare 524 (origin timeout) Origin taking too long for large uploads Check CF proxy timeout settings; consider bypassing CF proxy for large uploads
413 Request Entity Too Large CF or origin payload size limit Increase CF upload limit or implement chunked/multipart upload