Symptoms
daily.run.incompletepages, naming the workspaces that fell short.asobeast_workspace_daily_run_completed_secondssits well after the trigger, or does not move at all.- The health badge reports a stale pipeline, and
/admin/queuesshows waiting counts that do not drain. dependency.redis.unavailablepages, which is a different fault with the same symptom.
Triage
1
Rule out the dependencies first
redis of down means nothing is running at all. Restore Redis before reading anything else.2
Ask whether it is demand or throughput
GET /jobs/budget estimates the fan out against capacity. Compare the total demand with asobeast_pool_endpoints_healthy multiplied by the configured requests per minute.3
Find who grew
Sort
asobeast_workspace_daily_requests_estimated descending. Google Play keyword checks cost roughly eight requests each against one for the App Store, so a store mix change moves this number far more than a keyword count change.Containment
The pipeline already sheds load under pressure, dropping the least valuable stages first and keeping keyword checks longest. It plans each store separately, because the App Store and Google Play budgets are separate: a buried Google Play queue never sheds healthy App Store work, and spare Google Play capacity never hides an App Store queue that is already over. Your decisions sit on top of that.- Skip rather than stack. Let the running flow finish and allow the next trigger to be missed. Two overlapping runs halve the throughput of both.
- Truncate the tail. Category ranks, reviews and app refreshes can wait a day. Keyword rankings are the product.
- Do not raise the requests per minute to catch up. That is how a slow day becomes a blocked pool.
- If one workspace is over its plan limit, the keyword limiter already covers a rotating subset. Confirm with
asobeast_workspace_keyword_marketsagainstasobeast_workspace_quota_keyword_markets_limit.
Recovery
-
Once the cause is fixed, requeue the affected workspaces one at a time from the support surface:
-
Watch
asobeast_workspace_rankings_capturedreachasobeast_workspace_keyword_marketsfor each one before queuing the next. - If the overrun was demand rather than a fault, the fix is capacity, not scheduling. See Capacity exhaustion.
Who to tell
- Affected customers, once, in app, naming the store and the delay. The delay notice already appears for a workspace whose own run is behind.
- Everyone, on a status page, only when the run missed a full day for most tenants.
- Nobody, for a run that finished late but complete. A late complete run is not an incident.