Checking for Errors
When to worry
Section titled “When to worry”Pending is not an error — it means AWS is still provisioning after GCP Steps 4–5 complete. Worry when state becomes failed, or pending exceeds ~30 minutes with no progress.
Decision tree
Section titled “Decision tree”
AWS — CloudTrail (interconnect events)
Section titled “AWS — CloudTrail (interconnect events)”Console: CloudTrail Event history → filter Event source = interconnect.amazonaws.com.
CLI:
aws cloudtrail lookup-events \ --lookup-attributes AttributeKey=EventSource,AttributeValue=interconnect.amazonaws.com \ --start-time "$(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ)" \ --max-results 10 \ --query 'Events[*].{Time:EventTime,Name:EventName}' \ --output tableAWS — Organization SCPs
Section titled “AWS — Organization SCPs”If you use AWS Organizations / Control Tower, ensure SCPs allow interconnect:* — a separate namespace from directconnect:*. SCP denials often produce a silent failed state with no CloudTrail denial log.
Confirm interconnect and DXGW are in the same account as Terraform:
aws sts get-caller-identityterraform output -raw aws_dx_gateway_idGCP — transport or peering failures
Section titled “GCP — transport or peering failures”Transport stuck in CREATING (not PENDING_CONFIG) for hours — check VPC Service Controls: allow networkconnectivity-transportmanager-clh@system.gserviceaccount.com through the perimeter.
Recent transport operations:
gcloud beta network-connectivity operations list \ --region="$GCP_REGION" --project="$GCP_PROJECT" --limit=5