Skip to main content Accueil Créateurs comeonoliver skillshub apify-debug-bundle
apify-debug-bundle Collect Apify debug evidence for support tickets and troubleshooting.
Use when encountering persistent issues, preparing support tickets,
or collecting diagnostic information about failed Actor runs.
Trigger: "apify debug", "apify support bundle", "collect apify logs",
"apify diagnostic", "apify run failed why".
Aller à l'installation Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Métiers associés SOC
Basé sur la classification professionnelle SOC
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/ComeOnOliver/skillshub --skill apify-debug-bundleLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... Plus depuis ce dépôt Review product and feature risk before an AI coding agent starts implementation.
Use Xquik for X data and confirmation-gated X actions: tweet search, user lookup, follower export, media download, monitors, webhooks, MCP, and SDK workflows.
Canton Network open-source ecosystem guide covering DAML SDK, Canton runtime, and Splice applications. Use when working with Canton Network, DAML smart contracts, or building decentralized applications.
name apify-debug-bundle description Collect Apify debug evidence for support tickets and troubleshooting.
Use when encountering persistent issues, preparing support tickets,
or collecting diagnostic information about failed Actor runs.
Trigger: "apify debug", "apify support bundle", "collect apify logs",
"apify diagnostic", "apify run failed why".
allowed-tools Read, Bash(curl:*), Bash(npm:*), Bash(node:*), Bash(tar:*), Bash(apify:*), Grep version 1.0.0 license MIT author Jeremy Longshore <jeremy@intentsolutions.io> tags ["saas","scraping","automation","apify"] compatible-with claude-code
Apify Debug Bundle
Overview
Collect all diagnostic information needed to troubleshoot failed Actor runs and prepare Apify support tickets. Pulls run metadata, logs, dataset samples, and environment info into a single bundle.
Prerequisites
apify-client installed
APIFY_TOKEN configured
A failed or problematic run ID to investigate
Instructions
Step 1: Investigate a Failed Run
import { ApifyClient } from 'apify-client' ;
const client = new ApifyClient ({ token : process.env .APIFY_TOKEN });
async function investigateRun (runId : string ) {
const run = await client.run (runId).get ();
console .log ('=== Run Summary ===' );
console .log (`Status: ${run.status} ` );
console .log (`Message: ${run.statusMessage} ` );
console .log (`Started: ${run.startedAt} ` );
console .log (`Finished: ${run.finishedAt} ` );
console . ( );
. ( );
. ( );
. ( );
. ( );
. ( );
(run. ) {
ds = client. (run. ). ();
. ( );
}
log = client. (runId). (). ();
. ( );
. (log?. (- ));
{ run, log };
}
log
`Memory MB: ${run.options?.memoryMbytes} `
console
log
`Timeout sec: ${run.options?.timeoutSecs} `
console
log
`Build: ${run.buildNumber} `
console
log
`Origin: ${run.meta?.origin} `
console
log
`CU used: ${run.usage?.ACTOR_COMPUTE_UNITS?.toFixed(4 )} `
console
log
`Cost USD: $${run.usageTotalUsd?.toFixed(4 )} `
if
defaultDatasetId
const
await
dataset
defaultDatasetId
get
console
log
`\nDataset items: ${ds.itemCount} `
const
await
run
log
get
console
log
'\n=== Last 2000 chars of log ==='
console
log
slice
2000
return
Step 2: Create Debug Bundle Script #!/bin/bash
RUN_ID="${1:?Usage: apify-debug-bundle.sh <RUN_ID>} "
BUNDLE_DIR="apify-debug-$(date +%Y%m%d-%H%M%S) "
mkdir -p "$BUNDLE_DIR "
echo "Collecting debug info for run $RUN_ID ..."
{
echo "=== Environment ==="
echo "Date: $(date -u) "
echo "Node: $(node --version 2>/dev/null || echo 'not found') "
echo "npm: $(npm --version 2>/dev/null || echo 'not found') "
echo ""
echo "=== Apify Packages ==="
npm list apify-client apify crawlee 2>/dev/null || echo "No packages found"
echo ""
echo "=== Apify CLI ==="
apify --version 2>/dev/null || echo "CLI not installed"
} > "$BUNDLE_DIR /environment.txt"
curl -sf -H "Authorization: Bearer $APIFY_TOKEN " \
"https://api.apify.com/v2/actor-runs/$RUN_ID " | \
jq '.data | {id, actId, status, statusMessage, startedAt, finishedAt,
options: {memoryMbytes: .options.memoryMbytes, timeoutSecs: .options.timeoutSecs},
stats: .stats, usage: .usage, usageTotalUsd}' \
> "$BUNDLE_DIR /run-details.json" 2>/dev/null
curl -sf -H "Authorization: Bearer $APIFY_TOKEN " \
"https://api.apify.com/v2/actor-runs/$RUN_ID /log" \
> "$BUNDLE_DIR /run-log.txt" 2>/dev/null
DATASET_ID=$(jq -r '.defaultDatasetId // empty' "$BUNDLE_DIR /run-details.json" 2>/dev/null)
if [ -n "$DATASET_ID " ]; then
curl -sf -H "Authorization: Bearer $APIFY_TOKEN " \
"https://api.apify.com/v2/datasets/$DATASET_ID /items?limit=5" \
> "$BUNDLE_DIR /dataset-sample.json" 2>/dev/null
fi
KV_ID=$(jq -r '.defaultKeyValueStoreId // empty' "$BUNDLE_DIR /run-details.json" 2>/dev/null)
if [ -n "$KV_ID " ]; then
curl -sf -H "Authorization: Bearer $APIFY_TOKEN " \
"https://api.apify.com/v2/key-value-stores/$KV_ID /keys" \
> "$BUNDLE_DIR /kv-store-keys.json" 2>/dev/null
fi
if [ -f .env ]; then
sed 's/=.*/=***REDACTED***/' .env > "$BUNDLE_DIR /env-redacted.txt"
fi
curl -sf https://api.apify.com/v2/health > "$BUNDLE_DIR /platform-health.json" 2>/dev/null
tar -czf "$BUNDLE_DIR .tar.gz" "$BUNDLE_DIR "
rm -rf "$BUNDLE_DIR "
echo "Bundle created: $BUNDLE_DIR .tar.gz"
echo ""
echo "Attach this file to your Apify support ticket."
Step 3: Compare Successful vs Failed Runs async function compareRuns (successId : string , failId : string ) {
const success = await client.run (successId).get ();
const fail = await client.run (failId).get ();
console .log ('=== Run Comparison ===' );
const fields = [
'status' , 'buildNumber' , 'options.memoryMbytes' ,
'options.timeoutSecs' , 'stats.requestsFinished' ,
'stats.requestsFailed' , 'stats.runTimeSecs' ,
] as const ;
console .log (`${'Field' .padEnd(25 )} | ${'Success' .padEnd(15 )} | Failed` );
console .log ('-' .repeat (60 ));
const get = (obj : any , path : string ) =>
path.split ('.' ).reduce ((o, k ) => o?.[k], obj);
for (const field of fields) {
const sVal = get (success, field) ?? 'N/A' ;
const fVal = get (fail, field) ?? 'N/A' ;
const marker = sVal !== fVal ? ' <--' : '' ;
console .log (`${field.padEnd(25 )} | ${String (sVal).padEnd(15 )} | ${fVal} ${marker} ` );
}
}
Step 4: Live Tail Actor Logs
RUN_ID="your-run-id"
while true ; do
curl -sf -H "Authorization: Bearer $APIFY_TOKEN " \
"https://api.apify.com/v2/actor-runs/$RUN_ID /log?stream=1" 2>/dev/null
sleep 2
done
Sensitive Data Handling Always redact before sharing:
API tokens (apify_api_*)
Proxy passwords
PII (emails, names, IPs)
Custom environment variables
Run IDs, Actor IDs, dataset IDs
Error messages and stack traces
Run configuration (memory, timeout)
Platform health status
Escalation Path
Check run log for stack trace
Compare with a successful run
Check Apify Status for outages
Create debug bundle
Submit to Apify Support with bundle attached
Error Handling Issue Cause Solution Run not foundInvalid run ID or expired Unnamed runs expire after 7 days Log unavailableRun still in progress Wait for completion or stream live Empty dataset Actor produced no output Check failedRequestHandler in code High CU usage Memory too high or slow execution Reduce memory, optimize code
Resources
Next Steps For rate limit issues, see apify-rate-limits.