api-integrations
Expose external APIs to Falcon Foundry via OpenAPI specs. TRIGGER when user asks to "create an API integration", "adapt an OpenAPI spec for Foundry", "expose…
Systematic troubleshooting for Falcon Foundry CLI errors, manifest validation failures, deploy failures, artifact runtime errors, and development server issues. TRIGGER when user encounters CLI errors, `foundry ui run` not working, deploy failures, authentication issues,
$ npx -y skills add CrowdStrike/foundry-skills --skill debugging-workflows --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/debugging-workflowsContext preview
The summary Claude sees to decide when to auto-load this skill.
Systematic troubleshooting for Falcon Foundry CLI errors, manifest validation failures, deploy failures, artifact runtime errors, and development server issues. TRIGGER when user encounters CLI errors, `foundry ui run` not working, deploy failures, authentication issues,
name: debugging-workflows description: Systematic troubleshooting for Falcon Foundry CLI errors, manifest validation failures, deploy failures, artifact runtime errors, and development server issues. TRIGGER when user encounters CLI errors, `foundry ui run` not working, deploy failures, authentication issues, function execution failures, "debug my function", "why did this fail", or any unexpected behavior during Foundry app development. Also trigger for headless/CI environment setup failures. version: 1.5.0 updated: 2026-08-19 tags: [foundry, debugging, cli, deployment, artifacts, functions, logs, execution] author: CrowdStrike license: MIT compatibility: Claude Code >=1.0 metadata: category: troubleshooting
Systematic procedures for diagnosing and resolving common CrowdStrike Falcon Foundry development issues.
> **Part of a suite.** If `development-workflow` has not already run, and this is a new app or its first capability, load the `development-workflow` skill first — it owns the CLI prerequisite check, scaffolding order, and manifest coordination.
What's happening? CLI command hangs ├── In headless/CI environment → Missing --no-prompt or required flags (see Headless section) └── In interactive terminal → Check network/auth with foundry profile active Deploy fails ├── Validation error → Check manifest YAML syntax, then deploy again ├── "Unknown error" → Duplicate workflow name across apps in tenant └── Silent failure → Tenant may be missing required module (SKU) for requested scopes foundry ui run fails ├── On new app → Deploy backend capabilities first (API integrations, functions, collections resolve from cloud) ├── Permission errors → Check manifest OAuth scopes, restart server, verify auth └── Blank page / CORS error → noAttr() or base path removed from vite.config.js (see ui-development) Function execution fails ├── Status 500 + "Server Error" → Check function logs: foundry functions logs <exec_id> ├── Status 202 + no result → Async execution: foundry functions exec status <exec_id> ├── "authorization failed" → Missing custom-apps:write scope on API client ├── "artifact is not deployed" → Deploy first: foundry apps deploy --no-prompt ├── No logs available → Wait ~5 min, then: foundry functions logs <exec_id> --refresh └── Unexpected response → Read logs + source, correlate timestamps against handler code Auth fails ├── 401/403 from API → Check OAuth scopes in manifest ├── Login hangs → Headless environment, no browser — use env vars or profile create --no-prompt └── Works locally, fails in CI → Set FOUNDRY_API_CLIENT_ID env vars in CI config
# Via Foundry CLI with Docker (random ports, closest to production)
foundry functions run --name my-function
# Direct Go execution (port 8081, no Docker)
cd functions/my-function && go run main.go
# Direct Python execution (port 8081, no Docker)
cd functions/my-function && python3 main.py
curl -X POST http://localhost:8081/api/process -d '{"key":"value"}'
# With configuration file (local only)
CS_FN_CONFIG_PATH=./config.json python3 main.py> **Requires Foundry CLI 2.1.0+.** These commands do not exist in CLI 2.0.x.
For testing against the deployed Lambda (not local Docker), use the execution commands:
# Execute a deployed function handler
foundry functions exec --handler my_handler '{"key": "value"}' --no-prompt
# Execute and wait for logs
foundry functions exec --handler my_handler --logs '{"payload": "data"}' --no-prompt
# Check status of an async (202) execution
foundry functions exec status <exec_id>
# Retrieve logs for a past execution
foundry functions logs <exec_id>
# List recent executions to find one to debug
foundry functions exec list --function my-fn --no-promptWhen a deployed function returns unexpected results or errors:
**Step 1: Execute and observe**
foundry functions exec --handler <handler> --logs '{"test": "input"}' --no-promptNote the exec_id and status code from the output.
**Step 2: Retrieve logs if not already displayed**
foundry functions logs <exec_id>
Logs arrive ~5 minutes after execution via the Firehose pipeline. The CLI polls automatically with a countdown.
**Step 3: Correlate logs against source**
The function source lives at the path in `manifest.yml`:
functions:
- name: my-function
path: functions/my-function
handlers:
- name: my_handler
method: POST
api_path: /api/processRead the handler source and compare against log timestamps and error messages.
**Step 4: Common runtime failures**
| Log Pattern | Likely Cause | Fix | |-------------|-------------|-----| | `ImportError: No module named X` | Missing from `requirements.txt` | Add dependency, redeploy | | `KeyError: 'field'` | Missing field in request body | Add input validation | | `401 Unauthorized` from FalconPy | Missing OAuth scope in manifest | Add scope, redeploy | | `Timeout` / no logs appear | Function exceeded `max_exec_duration_seconds` | Increase timeout or optimize | | Status 202, no result | Async execution | Poll: `foundry functions exec status <exec_id>` | | Logs say "available" but empty | Logs not yet in pipeline | Wait 5 min or use `--refresh` |
**Step 5: Fix, redeploy, verify**
# After fixing the code:
foundry apps deploy --change-type Patch --change-log "fix handler error" --no-prompt
# Re-execute to verify
foundry functions exec --handler <handler> --logs '{"test": "input"}' --no-promptRTR scripts can only be tested via the CLI (not the Falcon console):
foundry rtr-scripts run --name my-script
Platforms: Windows (`script.ps1`), Linux (`script.sh`), macOS (`script.zsh`). Script size limit ~40KB. Dele
AI coding assistant skills for building CrowdStrike Falcon Foundry apps. Build Foundry apps from a natural language prompt — API integrations, workflows, UI pages, functions, and collections — all scaffolded with the Foundry CLI and deployed to the Falcon
Repo: CrowdStrike/foundry-skills
Expose external APIs to Falcon Foundry via OpenAPI specs. TRIGGER when user asks to "create an API integration", "adapt an OpenAPI spec for Foundry", "expose…
Design JSON Schema collections and CRUD patterns for Falcon Foundry apps. TRIGGER when user asks to "create a collection", "define a JSON schema", "store data…
Orchestrates the complete Falcon Foundry app lifecycle from requirements through deployment. TRIGGER when user asks to "create a Foundry app", "build a Foundry…
End-to-end testing for Falcon Foundry apps using Playwright and @crowdstrike/foundry-playwright. TRIGGER when user asks to "add e2e tests", "add playwright…
Build serverless Go or Python functions for Falcon Foundry apps. TRIGGER when user asks to "create a function", "write a serverless function", "build backend…
Call CrowdStrike Falcon platform APIs (detections, alerts, hosts, RTR) from within Foundry function handlers. TRIGGER when user asks to "call Falcon APIs from…