Amazon AppFlow Diagnostics
When to use
Any Amazon AppFlow investigation — flow creation, connector profiles, flow execution, data mapping, scheduling, trigger configuration, S3/Redshift destinations, custom connectors, private connections, or data encryption.
Investigation workflow
Step 1 — Collect and triage
aws appflow list-flows --query 'flows[*].{Name:flowName,Status:flowStatus,SourceType:sourceConnectorType,DestType:destinationConnectorType}'
aws appflow list-connector-profiles --query 'connectorProfileProperties[*].{Name:connectorProfileName,Type:connectorType}'
aws appflow describe-flow --flow-name <flow-name>
Step 2 — Domain deep dive
aws appflow describe-flow-execution-records --flow-name <flow-name> --max-results 10
aws appflow describe-connector-profiles --connector-profile-names <profile-name>
aws cloudwatch get-metric-statistics --namespace AWS/AppFlow --metric-name FlowExecutionsFailed --dimensions Name=FlowName,Value=<flow-name> --start-time <start> --end-time <end> --period 3600 --statistics Sum
Step 3 — Detailed investigation
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=appflow.amazonaws.com --max-results 20
aws appflow describe-connectors --connector-type <type>
aws logs filter-log-events --log-group-name /aws/appflow/<flow-name> --start-time <epoch-ms> --limit 50
Read references/guardrails.md before concluding on any AppFlow issue.
Tool quick reference
| Tool / API |
When to use |
appflow list-flows |
List all flows in the account |
appflow describe-flow |
Get flow configuration details |
appflow describe-flow-execution-records |
Review execution history |
appflow list-connector-profiles |
List connector profiles |
appflow describe-connector-profiles |
Get connector profile details |
appflow describe-connectors |
Get connector capabilities |
appflow start-flow |
Manually trigger a flow run |
Gotchas: Amazon AppFlow
- AppFlow has a limit of 100 flows per account per region by default. Request a quota increase for more.
- Salesforce connector requires a Connected App with specific OAuth scopes. Refresh tokens expire if the Connected App is modified.
- S3 destination writes use a specific prefix pattern:
<prefix>/<flow-name>/<execution-id>/. Do not assume flat file output.
- Redshift destination requires an intermediate S3 bucket for staging. The Redshift cluster must have COPY permissions on that bucket.
- Scheduled flows use UTC time. Cron expressions follow AWS EventBridge syntax, not standard Unix cron.
- Custom connectors using Lambda must return responses in the exact AppFlow connector SDK format. Malformed responses cause silent failures.
- Private connections use AWS PrivateLink. The VPC endpoint must be in the same region as the AppFlow flow.
Anti-hallucination rules
- Always cite specific flow names, execution IDs, or API responses as evidence.
- Salesforce OAuth tokens and Connected App configurations are service-specific. Never assume generic OAuth troubleshooting applies.
- S3 and Redshift destinations have different error patterns. Never conflate destination types.
- Scheduled flows and on-demand flows have different trigger mechanisms. Never mix troubleshooting steps.
- Spend no more than 2 minutes on any single hypothesis. Pivot if inconclusive.
14 runbooks
| Category |
IDs |
Covers |
| A — Flow Management |
A1-A2 |
Flow creation failures, flow configuration |
| B — Connectors |
B1-B2 |
Connector profile errors, Salesforce connector |
| C — Execution |
C1-C2 |
Flow execution failures, data mapping errors |
| D — Scheduling |
D1-D2 |
Scheduling issues, trigger configuration |
| E — Destinations |
E1-E2 |
S3 destination errors, Redshift destination errors |
| F — Advanced |
F1-F2 |
Custom connector issues, private connection |
| G — Security |
G1 |
Data encryption |
| Z — Catch-All |
Z1 |
General troubleshooting |
1---2name: appflow-diagnostics3description: Use this skill to investigate and troubleshoot Amazon AppFlow problems by analyzing flow creation, connector profiles, flow execution, data mapping, scheduling, destinations, custom connectors, private connections, encryption, and following structured runbooks. Activate when: flow creation failures, connector profile errors, flow execution failures, data mapping issues, scheduling problems, destination errors, custom connector issues, private connection failures, encryption problems, or the user says something is wrong with AppFlow.4---56# Amazon AppFlow Diagnostics78## When to use910Any Amazon AppFlow investigation — flow creation, connector profiles, flow execution, data mapping, scheduling, trigger configuration, S3/Redshift destinations, custom connectors, private connections, or data encryption.1112## Investigation workflow1314### Step 1 — Collect and triage1516```17aws appflow list-flows --query 'flows[*].{Name:flowName,Status:flowStatus,SourceType:sourceConnectorType,DestType:destinationConnectorType}'18aws appflow list-connector-profiles --query 'connectorProfileProperties[*].{Name:connectorProfileName,Type:connectorType}'19aws appflow describe-flow --flow-name <flow-name>20```2122### Step 2 — Domain deep dive2324```25aws appflow describe-flow-execution-records --flow-name <flow-name> --max-results 1026aws appflow describe-connector-profiles --connector-profile-names <profile-name>27aws cloudwatch get-metric-statistics --namespace AWS/AppFlow --metric-name FlowExecutionsFailed --dimensions Name=FlowName,Value=<flow-name> --start-time <start> --end-time <end> --period 3600 --statistics Sum28```2930### Step 3 — Detailed investigation3132```33aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=appflow.amazonaws.com --max-results 2034aws appflow describe-connectors --connector-type <type>35aws logs filter-log-events --log-group-name /aws/appflow/<flow-name> --start-time <epoch-ms> --limit 5036```3738Read `references/guardrails.md` before concluding on any AppFlow issue.3940## Tool quick reference4142| Tool / API | When to use |43|------------|-------------|44| `appflow list-flows` | List all flows in the account |45| `appflow describe-flow` | Get flow configuration details |46| `appflow describe-flow-execution-records` | Review execution history |47| `appflow list-connector-profiles` | List connector profiles |48| `appflow describe-connector-profiles` | Get connector profile details |49| `appflow describe-connectors` | Get connector capabilities |50| `appflow start-flow` | Manually trigger a flow run |5152## Gotchas: Amazon AppFlow5354- AppFlow has a limit of 100 flows per account per region by default. Request a quota increase for more.55- Salesforce connector requires a Connected App with specific OAuth scopes. Refresh tokens expire if the Connected App is modified.56- S3 destination writes use a specific prefix pattern: `<prefix>/<flow-name>/<execution-id>/`. Do not assume flat file output.57- Redshift destination requires an intermediate S3 bucket for staging. The Redshift cluster must have COPY permissions on that bucket.58- Scheduled flows use UTC time. Cron expressions follow AWS EventBridge syntax, not standard Unix cron.59- Custom connectors using Lambda must return responses in the exact AppFlow connector SDK format. Malformed responses cause silent failures.60- Private connections use AWS PrivateLink. The VPC endpoint must be in the same region as the AppFlow flow.6162## Anti-hallucination rules63641. Always cite specific flow names, execution IDs, or API responses as evidence.652. Salesforce OAuth tokens and Connected App configurations are service-specific. Never assume generic OAuth troubleshooting applies.663. S3 and Redshift destinations have different error patterns. Never conflate destination types.674. Scheduled flows and on-demand flows have different trigger mechanisms. Never mix troubleshooting steps.685. Spend no more than 2 minutes on any single hypothesis. Pivot if inconclusive.6970## 14 runbooks7172| Category | IDs | Covers |73|----------|-----|--------|74| A — Flow Management | A1-A2 | Flow creation failures, flow configuration |75| B — Connectors | B1-B2 | Connector profile errors, Salesforce connector |76| C — Execution | C1-C2 | Flow execution failures, data mapping errors |77| D — Scheduling | D1-D2 | Scheduling issues, trigger configuration |78| E — Destinations | E1-E2 | S3 destination errors, Redshift destination errors |79| F — Advanced | F1-F2 | Custom connector issues, private connection |80| G — Security | G1 | Data encryption |81| Z — Catch-All | Z1 | General troubleshooting |