Palantir Debug Bundle
Overview
Collect all diagnostic information needed for Foundry support tickets: SDK version, auth status, API connectivity, build logs, and environment details. Secrets are automatically redacted.
Prerequisites
foundry-platform-sdkinstalled- Access to application logs and Foundry build logs
- Permission to collect environment info
Instructions
Step 1: Create Debug Bundle Script
#!/bin/bash
set -euo pipefail
BUNDLE_DIR="foundry-debug-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE_DIR"
echo "=== Foundry Debug Bundle ===" > "$BUNDLE_DIR/summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE_DIR/summary.txt"
# Python environment
echo -e "\n--- Python Environment ---" >> "$BUNDLE_DIR/summary.txt"
python --version >> "$BUNDLE_DIR/summary.txt" 2>&1
pip show foundry-platform-sdk 2>/dev/null | grep -E "^(Name|Version)" >> "$BUNDLE_DIR/summary.txt"
pip show palantir-sdk 2>/dev/null | grep -E "^(Name|Version)" >> "$BUNDLE_DIR/summary.txt"
# Environment variables (redacted)
echo -e "\n--- Environment (redacted) ---" >> "$BUNDLE_DIR/summary.txt"
echo "FOUNDRY_HOSTNAME: ${FOUNDRY_HOSTNAME:-NOT SET}" >> "$BUNDLE_DIR/summary.txt"
echo "FOUNDRY_TOKEN: ${FOUNDRY_TOKEN:+[SET, length=${#FOUNDRY_TOKEN}]}" >> "$BUNDLE_DIR/summary.txt"
echo "FOUNDRY_CLIENT_ID: ${FOUNDRY_CLIENT_ID:+[SET]}" >> "$BUNDLE_DIR/summary.txt"
echo "FOUNDRY_CLIENT_SECRET: ${FOUNDRY_CLIENT_SECRET:+[SET]}" >> "$BUNDLE_DIR/summary.txt"
Step 2: Test API Connectivity
# API connectivity test
echo -e "\n--- API Connectivity ---" >> "$BUNDLE_DIR/summary.txt"
if [ -n "${FOUNDRY_HOSTNAME:-}" ] && [ -n "${FOUNDRY_TOKEN:-}" ]; then
HTTP_CODE=$(curl -s -o "$BUNDLE_DIR/api-response.json" -w "%{http_code}" \
-H "Authorization: Bearer $FOUNDRY_TOKEN" \
"https://$FOUNDRY_HOSTNAME/api/v2/ontologies" 2>/dev/null || echo "FAILED")
echo "Ontology API: HTTP $HTTP_CODE" >> "$BUNDLE_DIR/summary.txt"
else
echo "Skipped: FOUNDRY_HOSTNAME or FOUNDRY_TOKEN not set" >> "$BUNDLE_DIR/summary.txt"
fi
Step 3: Collect Build Logs and Error Context
# Collect recent Python errors
echo -e "\n--- Recent Errors ---" >> "$BUNDLE_DIR/summary.txt"
grep -rn "foundry\.\|ApiError\|Traceback" *.log 2>/dev/null | tail -30 >> "$BUNDLE_DIR/errors.txt" || true
# Collect .env (redacted)
if [ -f .env ]; then
sed 's/=.*/=***REDACTED***/' .env > "$BUNDLE_DIR/config-redacted.txt"
fi
Step 4: Package and Verify
tar -czf "$BUNDLE_DIR.tar.gz" "$BUNDLE_DIR"
echo "Bundle: $BUNDLE_DIR.tar.gz ($(du -h "$BUNDLE_DIR.tar.gz" | cut -f1))"
rm -rf "$BUNDLE_DIR"
Output
foundry-debug-YYYYMMDD-HHMMSS.tar.gzcontaining:summary.txt— SDK versions, env vars (redacted), API statusapi-response.json— raw API response for diagnosiserrors.txt— recent error logsconfig-redacted.txt— configuration with secrets masked
Error Handling
| Item | Purpose | Sensitive? | |------|---------|------------| | SDK versions | Compatibility check | No | | API HTTP code | Connectivity diagnosis | No | | Error logs | Root cause analysis | Review before sharing | | Config (redacted) | Configuration issues | Auto-redacted | | Bearer tokens | Auth diagnosis | NEVER include raw values |
Examples
Submit to Palantir Support
- Run:
bash foundry-debug-bundle.sh - Review the tarball for any leaked secrets
- Open a support ticket in Palantir's support portal
- Attach the bundle with a description of the issue
Resources
Next Steps
For rate limit issues, see palantir-rate-limits.