← back to dashboard

SynCal — fleet issue

_Last refreshed: 2026-06-12 (supersedes the 2026-06-11 version of this file). Re-verified against state files generated 2026-06-11T20:30:04Z and run logs through 2026-06-11T20:15Z._

Status (one line): Unhealthy because App Store version 1.0.0 is REJECTED with App Review state UNRESOLVED_ISSUES; not auto-healed because this is a human App Review rejection, not a build/archive/upload defect — the fleet doctor has no automated remediation for it (Not auto-healing (fixable=false, autoHeal=true); verify verdict: {"app":"SynCal","isRealFix":false,"confidence":"high","reasoning":"No fix attempted"}).

Root cause & evidence

The build/upload pipeline is healthy; the blocker is downstream, in App Review.

Failing log line (the blocking check, from state/asc-review.jsonapps.SynCal.checks[0], generated_at: 2026-06-11T20:30:04Z):

Latest review submission has unresolved issues in App Review

Full blocking check object (state/asc-review.jsonapps.SynCal):

{
  "reviewState": "UNRESOLVED_ISSUES",
  "nextAction": "Resolve the outstanding App Review issues in App Store Connect, then resubmit if needed.",
  "summary": { "errors": 1, "warnings": 0, "infos": 1, "blocking": 1 },
  "submission": {
    "id": "01ab9848-0044-4961-8139-f66e6d611514",
    "state": "UNRESOLVED_ISSUES",
    "submittedDate": "2026-05-28T16:38:57.151Z"
  },
  "checks": [
    {
      "severity": "error",
      "message": "Latest review submission has unresolved issues in App Review",
      "remediation": "Resolve the outstanding App Review issues in App Store Connect, then resubmit if needed.",
      "field": null
    }
  ]
}

Why auto-heal could not act:

Corroborating state (all as of 2026-06-11/12):

Claude-ready fix prompt

This is an App Review rejection — do NOT change app code speculatively. Read the actual rejection reason first, then act. Concretely:

  1. Read the rejection. In App Store Connect → My Apps → "SynCal - Calendar Sync" (asc_id 6774228993, bundle com.zzxwill.SynCal, account kentlecheltjtk95@gmail.com) → App Review / Resolution Center, open review submission 01ab9848-0044-4961-8139-f66e6d611514 (submitted 2026-05-28). Capture the exact reviewer message and cited Review Guideline. For a calendar-sync utility, likely causes: insufficient EventKit privacy purpose strings, missing/unreachable privacy-policy URL, Guideline 2.1 sign-in/demo-account requirement (calendar-account OAuth — reviewers need a demo account or a no-login path), or metadata/screenshots not matching functionality.
  1. Decide whether build 4 already addresses the rejection. Build 4 (commit b8c0c610f8896792bceef7b9d73abc0fdabb9c0f) is already uploaded and VALID on App Store Connect. Inspect that commit at /Users/zzxwill/Programming/go/src/zzxwill/apple-apps/apps/SynCal. If it addresses the reviewer's cited issue, attach build 4 to version 1.0.0 in App Store Connect, reply in Resolution Center, and resubmit. If not, proceed to step 3.
  1. Address the cited issue by type:
  1. Resubmit version 1.0.0 with the appropriate build from App Store Connect, replying to the Resolution Center thread; this moves the version out of UNRESOLVED_ISSUES / REJECTED.
  1. Re-sync fleet state afterwards so state/asc.json, state/asc-review.json, state/asc-live.json, and state/dashboard.html reflect the new state, and clear the stale apps.SynCal.in_flight / pending_review_build / pending_review_ipa / pending_review_since fields in state/fleet.json (build 4 is already on ASC). The blocking review check should then clear.

Relevant paths (absolute):

Last known-good build number

From state/asc.jsonapps.SynCal: build 4 (latest_build_number: "4", latest_build_state: "VALID", version 1.0.0, uploaded 2026-06-10T09:07:22-07:00). This is the latest build that reached App Store Connect as a VALID binary; the failure is at the App Review layer, not the build. If a new code fix is needed, the next build number should be 5.