协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
automation-pilot-debugger【开发与工程】Debug and troubleshoot SAP Automation Pilot execution failures. Use when executions fail, need to investigate errors, check execution health (pass/fail summary), or understand error patterns. Provides error pattern matching with suggested fixes.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Debug failed Executions, check recent execution health, and investigate error patterns. Use this skill when things go wrong — not for normal operations.
# Last 10 executions summary
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
"https://$AUTOPI_HOSTNAME/api/v1/executions?limit=10"
# Last 5 failed executions
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
"https://$AUTOPI_HOSTNAME/api/v1/executions?status=FAILED&limit=5"
# Last 5 successful executions
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
"https://$AUTOPI_HOSTNAME/api/v1/executions?status=FINISHED&limit=5"
EXEC_ID="your-execution-id"
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
"https://$AUTOPI_HOSTNAME/api/v1/executions/$EXEC_ID"
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
"https://$AUTOPI_HOSTNAME/api/v1/executions/$EXEC_ID/logs"
Error: API returns 400 with message like "Parameter 'smtpHost' is required but not provided" even when the parameter IS provided in the JSON payload.
Root Cause: Known issue (possibly canary environment specific or permission-related) where the execution API fails to recognize required input parameters passed at trigger time.
Workaround:
$(.execution.input.paramName)inputKeys: {} or all required: false) work correctlyExample - Before (fails):
"inputKeys": {
"smtpHost": { "type": "string", "required": true }
},
"executors": [{
"input": { "host": "$(.execution.input.smtpHost)" }
}]
Example - After (works):
"inputKeys": {},
"executors": [{
"input": { "host": "mail.example.com" }
}]
Full Error: "Missing valid combination of input values for authentication. Please select a valid option: 1) 'clientCert' for X509 2) 'user' & 'password' for Basic authentication"
Context: Typically occurs with email-sapcp:SendEmail:1 command.
Root Cause: The SMTP server requires authentication. Internal mail relays like mail.sap.corp that work from on-premise networks require authentication when accessed from cloud services (Automation Pilot runs in the cloud).
Fix Options:
user and password for SMTP authenticationclientCert for X509 certificate authenticationContext: Occurs when deploying a command.
Root Cause: Sensitive input keys (like passwords) cannot have hardcoded defaultValue. This is a security feature.
Fix: Remove defaultValue from sensitive fields. Use defaultValueFromInput to reference an Input object instead, or leave no default.
Wrong:
"password": {
"type": "string",
"sensitive": true,
"defaultValue": "<your-password>"
}
Correct:
"password": {
"type": "string",
"sensitive": true
}
Root Cause Options:
Fix:
# Check if command exists
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
"https://$AUTOPI_HOSTNAME/api/v1/commands/catalog:CommandName:1"
⚠️ If the command is in draft state, release it only after verifying it works correctly and only if the user explicitly requests it:
curl -s -X PUT -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
"https://$AUTOPI_HOSTNAME/api/v1/commands/catalog:CommandName:1/release"
Possible Causes:
Delay:1 step is waiting (check progressMessage for "Waiting X minutes")repeat) hasn't met exit conditioncurl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" "https://$AUTOPI_HOSTNAME/api/v1/executions/$EXEC_ID"
Fix Options:
curl -s -X POST -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"type": "ABORT", "reason": "Aborting stuck execution"}' \
"https://$AUTOPI_HOSTNAME/api/v1/executions/$EXEC_ID/actions"
Common Issues:
autoRetry configurationSymptoms: Error mentions jq, expression, or shows $(.something.output) in error.
Common Causes:
toObject on non-JSON string)Fix: Add null checks with // "default" operator:
$(.step.output.body | toObject.field // "default")
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" "https://$AUTOPI_HOSTNAME/api/v1/executions/$EXEC_ID"
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" "https://$AUTOPI_HOSTNAME/api/v1/executions/$EXEC_ID/logs?maxPageSize=20"
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" "https://$AUTOPI_HOSTNAME/api/v1/executions/$EXEC_ID/input"
Look up the error message in the Error Pattern Reference above.
curl -s -u "$AUTOPI_USERNAME:$AUTOPI_PASSWORD" "https://$AUTOPI_HOSTNAME/api/v1/commands/$COMMAND_ID"