โšก
Zero to Platform Architect2026
War-Room Triage & 43 Traps
War-Room Triage & 43 Trapsโฑ๏ธ 15 min readโšก Staff SRE Standard
๐ŸŽฏ Memory Bank →

๐ŸŽฏ The Staff Architectโ€™s Compendium of Common Tricky Issues & Respective Guides

This compendium is a high-density, fast-lookup diagnostic directory of the 43 most tricky, subtle, and catastrophic production platform issues encountered in enterprise environments. Each issue outlines its diagnostic signature, under-the-hood root cause, immediate triage command, permanent architectural resolution, and a direct link to its specialized deep-dive guide.


๐Ÿง  Beginner Mental Model: How to Use This Diagnostic Directory

Think of this directory as an Emergency Room Symptom-to-Diagnosis Chart:

  1. Step 1 (Match the Symptom): Find the exact error message or latency pattern you see on your screen in the first column (Symptom / Error Signature).
  2. Step 2 (Understand the Hidden Trap): Read the Under-the-Hood Root Cause columnโ€”in platform engineering, the real cause is usually 1 layer deeper than the error message suggests (e.g., a โ€œDNS timeoutโ€ is often actually a Linux kernel conntrack table overflow!).
  3. Step 3 (Run the 1-Line Triage Command): Copy and run the Immediate Triage Command to prove or disprove the hypothesis in under 30 seconds.
  4. Step 4 (Execute the Deep-Dive Playbook): Click the linked guide in the last column for the full step-by-step remediation runbook.

๐Ÿงญ Navigation by Operational Category

mindmap
  root((Tricky Issues Directory))
    Silent Blackholes
      WireGuard MTU Blackhole
      TGW Appliance Mode Asymmetry
      CoreDNS conntrack Race
      Megaport BGP MED Flapping
      PrivateLink Cross-Zone Disabled
      Chaos Mesh Zombie netem
    Cascading Storms
      Aurora Thundering Herd
      ESO Secrets Manager Throttling
      Prometheus TSDB Cardinality OOM
      NAT Gateway SNAT Exhaustion
      LiteLLM Upstream Retry Storm
      TIME_WAIT Socket Leaks
    Deadlocks & Quorum Loss
      EBS CSI Multi-AZ Deadlock
      Terraform DynamoDB State Lock
      Vault Raft Quorum Loss
      PDB Node Drain Hang
      Admission Webhook Freeze
      Security Group Cyclic Graph
    State Drift & Schema Traps
      Canary Dropped Column Abort
      ArgoCD Mutating Webhook Loop
      Crossplane Finalizer Deadlock
      Golden AMI machine-id Duplicate
      Git Force-Push Main Rewind
      Git LFS 130-byte Pointer Build Fail
    Identity & Permissions
      Air-Gapped Cosign Rekor Timeout
      Offboarded Employee Active STS
      AWS IAM OIDC Thumbprint Expire
      SCP Root Override Illusion
      Lambda VPC ENI IP Starvation
    Resource & Capacity Traps
      CFS CPU Quota Latency Spike
      Milvus HNSW 1.5x RAM OOM
      vLLM PagedAttention CUDA OOM
      ALB Deregistration Race 502s
      OpenCost Unallocated Idle Spend

๐Ÿ•ณ๏ธ Category 1: Silent Blackholes & Kernel Packet Drops

Issue & Error Signature Root Cause Under the Hood Fast Triage Command Architectural Fix Respective Deep-Dive Guide
Cilium WireGuard MTU Silent Blackhole
Client Hello sent... (hangs indefinitely)
Tunnel headers (+60B) cause packets to exceed 1500B. DF bit set causes cloud fabric to drop packets silently without ICMP. ping -M do -s 1420 <target-ip> Clamp Cilium MTU to 1420 in Helm values; enable TCP MSS clamping. ๐Ÿ•ธ๏ธ Service Mesh & Chaos Triage
Transit Gateway Appliance Mode Asymmetry
TCP connections stall during TLS or reset with TCP RST
TGW hashes forward and return packets to different AZ firewalls. Firewall 2 has no connection state and drops SYN-ACK. aws ec2 describe-transit-gateway-vpc-attachments --query "...ApplianceModeSupport" Enable ApplianceModeSupport=enable on the Inspection VPC attachment. ๐ŸŒ Multi-Cloud Networking Triage
CoreDNS conntrack UDP Race
Intermittent 5004ms HTTP timeouts in microservices
ndots:5 triggers simultaneous A and AAAA queries. Netfilter races on UDP tuple insertion, silently dropping 1 packet. dmesg -T | grep nf_conntrack Deploy NodeLocal DNSCache DaemonSet (169.254.20.10); configure ndots: 2. โ˜ธ๏ธ Kubernetes & Stateful Triage
Megaport MCR BGP Asymmetric Routing
150ms+ latency spikes & TCP disconnects every 90s
AWS and Azure advertise same subnets; unequal BGP Local Preference causes return traffic to route over public VPN. traceroute -T -p 443 <dest-ip> Enforce deterministic BGP Local Preference (200 primary, 100 backup); prepend AS-path 3ร—. ๐ŸŒ Multi-Cloud Networking Triage
PrivateLink Cross-Zone Balancing Disabled
50% of requests succeed, 50% time out after 30s
NLB has targets in AZ-a only, but consumer sends packets to AZ-b endpoint ENI with cross-zone balancing off. aws elbv2 describe-load-balancer-attributes Set load_balancing.cross_zone.enabled=true on the NLB. ๐ŸŒ Multi-Cloud Networking Triage
Chaos Mesh Zombie tc netem Rules
Deleted chaos test leaves persistent 20% packet loss
chaos-daemon pod crashed before flushing kernel traffic control (tc) queuing disciplines from the container cgroup. sudo nsenter -t $PID -n tc qdisc show dev eth0 Flush lingering rule: sudo nsenter -t $PID -n tc qdisc del dev eth0 root. ๐Ÿ•ธ๏ธ Service Mesh & Chaos Triage
Route 53 Resolver Recursive Outbound Loop
Sluggish DNS & $10,000/week Route 53 bills
Outbound resolver forwards .corp to on-prem; on-prem forwards .internal back to AWS Inbound endpoint. dig +trace non-existent.corp @10.100.0.2 Remove circular forwarders; enforce Route 53 Resolver DNS Firewall rules. ๐ŸŒ Multi-Cloud Networking Triage

๐ŸŒช๏ธ Category 2: Cascading Storms, Thundering Herds & Resource Exhaustion

Issue & Error Signature Root Cause Under the Hood Fast Triage Command Architectural Fix Respective Deep-Dive Guide
Aurora Thundering Herd on Pod Restart
FATAL: remaining connection slots reserved
Blanket pod reboot causes 120 pods to open 3,000 parallel database connections simultaneously, freezing CPU. SELECT count(*), state FROM pg_stat_activity GROUP BY state; Place AWS RDS Proxy between EKS and Aurora; multiplex to a fixed pool of 50 backend connections. ๐Ÿ›๏ธ Enterprise SRE & FinOps Triage
ESO Secrets Manager API Throttling
ThrottlingException: Rate exceeded (TPS limit reached)
500 ExternalSecret manifests configured with refreshInterval: 10s polling AWS Secrets Manager constantly. kubectl get externalsecrets -A Increase refreshInterval to 12h; switch to EventBridge webhook-driven secret updates. ๐Ÿ›ก๏ธ DevSecOps & Patching Triage
Prometheus TSDB Cardinality Explosion
Prometheus OOMKilled (Exit 137) during startup
Developers exported unbounded labels (user_id, order_id), multiplying time series to 50M+ in memory. promtool tsdb analyze /prometheus/data Use metricRelabelings with action: labeldrop to strip high-cardinality labels before storage. โ˜ธ๏ธ Phase 4 Prometheus Lesson
AWS NAT Gateway SNAT Port Exhaustion
CloudWatch ErrorPortAllocation > 0
100 pods query single SaaS API without HTTP connection reuse, exhausting 55,000 source ports per IP. Check CloudWatch metric ErrorPortAllocation Associate secondary Elastic IPs to the NAT Gateway (up to 8); mandate HTTP Keep-Alive connection pools. ๐Ÿงฑ Phase 0 Networking 101
LiteLLM Upstream HTTP 429 Retry Storm
OpenAI 429 cascades into 504 Gateway Timeouts
Gateway retries aggressively on 429 without exponential backoff or provider fallback routing. Inspect LiteLLM logs for RateLimitError Configure exponential backoff with jitter; route fallbacks to Azure OpenAI & Claude on Bedrock. ๐Ÿš€ GitOps & LLMOps Triage
TCP TIME_WAIT Socket Accumulation
cannot assign requested address (EADDRNOTAVAIL)
Short-lived connections close rapidly, leaving all 28k ephemeral ports in TIME_WAIT for 60 seconds. ss -tan state time-wait | wc -l Set sysctl -w net.ipv4.tcp_tw_reuse=1; expand ip_local_port_range="1024 65535". ๐Ÿงฑ Phase 0 Networking 101
Dynamic Vault Secret Lease Expiration Storm
FATAL: password authentication failed for user v-token-*
Vault short-lived lease (1h) expires; application connection pool held old credentials without refresh. vault list sys/leases/lookup/database/creds Set HikariCP maxLifetime < Vault TTL; prefer 2-user static rotation for core databases. ๐Ÿ“œ IaC & Vault Triage

๐Ÿ”’ Category 3: Deadlocks, Freezes & Quorum Split-Brains

Issue & Error Signature Root Cause Under the Hood Fast Triage Command Architectural Fix Respective Deep-Dive Guide
EBS CSI Multi-AZ Scheduling Deadlock
VolumeZoneConflict: volume node affinity conflict
StorageClass used Immediate binding; EBS volume provisioned in AZ-a, but Pod scheduled in AZ-b. kubectl get sc <name> -o yaml | grep volumeBindingMode Always configure volumeBindingMode: WaitForFirstConsumer on all block storage StorageClasses. โ˜ธ๏ธ Kubernetes & Stateful Triage
Terraform DynamoDB State Lock Stuck
ConditionalCheckFailedException: Lock Info: ID...
CI/CD runner crashed or was canceled before Terraform could execute its exit cleanup handler. aws dynamodb get-item --table-name terraform-locks ... Execute terraform force-unlock <Lock-ID>; wrap CI scripts in shell signal traps. ๐Ÿ“œ IaC & Vault Triage
Vault Raft Storage Quorum Split-Brain
[WARN] raft: no known peers, cannot start election
AZ network partition separates 2 nodes from 1 in a 3-node cluster; nodes fail to establish majority quorum. vault operator raft list-peers Break-glass single-node quorum recovery via /vault/data/peers.json. ๐Ÿ“œ IaC & Vault Triage
PDB Node Drain Infinite Hang
Cannot evict pod: would violate disruption budget
minAvailable: 2 configured on a 2-replica deployment; evicting 1 pod drops healthy replicas to 1. kubectl get pdb -A Never set minAvailable == replicas; configure maxUnavailable: 1 or break-glass --disable-eviction. โ˜ธ๏ธ Kubernetes & Stateful Triage
Admission Webhook Cluster Freeze
failed calling webhook: context deadline exceeded
Admission controller crashed, but webhook configured with failurePolicy: Fail across all namespaces. kubectl get validatingwebhookconfigurations Exclude kube-system via namespaceSelector; patch webhook to failurePolicy: Ignore in emergency. โ˜ธ๏ธ Kubernetes & Stateful Triage
Terraform Security Group Cyclic Graph
Error: Cycle: aws_security_group.app, aws_security_group.db
Inline ingress and egress blocks reference each other directly, preventing DAG creation. terraform plan Decouple rules into standalone aws_security_group_rule resources attaching to empty security groups. ๐Ÿ“œ IaC & Vault Triage
Terragrunt Cold-Boot Output Deadlock
Module /infra/eks depends on /infra/vpc, no outputs yet
Fresh account bootstrap; VPC state doesnโ€™t exist yet, crashing Terragrunt dependency parser. terragrunt run-all plan Configure mock_outputs and mock_outputs_allowed_terraform_commands = ["validate", "plan"]. ๐Ÿ“œ IaC & Vault Triage

๐ŸŽญ Category 4: State Drift, Desync & Schema Traps

Issue & Error Signature Root Cause Under the Hood Fast Triage Command Architectural Fix Respective Deep-Dive Guide
Canary Abort with Breaking Database Schema
column "legacy_code" does not exist (HTTP 500)
Canary release ran ALTER TABLE DROP COLUMN; when canary aborted back to v1.0, stable code crashed. Inspect database migration logs in CI Enforce the Two-Phase Expand-and-Contract Pattern: add new column first, deprecate old, drop later. ๐Ÿš€ GitOps & LLMOps Triage
ArgoCD Mutating Webhook Infinite Sync Storm
live state has limits, desired state has none
Mutating webhook or VPA mutates live pod spec; ArgoCD detects drift and re-applies Git spec continuously. argocd app diff <app-name> Declare ignoreDifferences in ArgoCD Application manifest for operator-managed fields. ๐Ÿš€ GitOps & LLMOps Triage
Crossplane XR Finalizer Deadlock
Namespace stuck in Terminating for hours
AWS IAM role deleted or deletion protection enabled on RDS; Crossplane provider cannot delete cloud asset. kubectl get managed -A | grep -v True Clear finalizer if safe: kubectl patch <resource> -p '{"metadata":{"finalizers":null}}' --type=merge. ๐Ÿš€ GitOps & LLMOps Triage
Golden AMI /etc/machine-id Duplication
DHCPACK: duplicate IP assignment detected
Builder VM created /etc/machine-id during bake; Packer forgot to truncate before taking snapshot. cat /etc/machine-id on multiple instances Run truncate -s 0 /etc/machine-id and cloud-init clean --all in Packer sysprep script. ๐Ÿ›ก๏ธ DevSecOps & Patching Triage
Accidental Git Force-Push Rewinds Main
Remote branch rewound by 40 commits
Developer ran git push --force instead of --force-with-lease after an out-of-date local rebase. git reflog show origin/main Recover commit SHA from reflog; enforce GitHub Branch Protection blocking force pushes. ๐Ÿงฑ Phase 0 Git Fundamentals
Git LFS 130-byte Text Pointer Build Failure
cannot execute binary file: Exec format error
Developer committed an executable without git lfs install; Git committed the plain-text pointer file. head -n 3 ./bin/<file> Run git lfs pull; enforce pre-commit hook requiring LFS installation. ๐Ÿงฑ Phase 0 Git Fundamentals
Backstage Catalog Processor OpenAPI Crash
YAMLSyntaxError: Map keys must be unique
Duplicate key in openapi.yaml parsed synchronously inside catalog worker transaction, stalling fleet. kubectl logs deploy/backstage Validate specs client-side in PR using npx @backstage/cli repo lint; isolate processor error boundaries. ๐Ÿ•ธ๏ธ Service Mesh & Chaos Triage

๐Ÿ›ก๏ธ Category 5: Identity, Permissions & Token Expiration Windows

Issue & Error Signature Root Cause Under the Hood Fast Triage Command Architectural Fix Respective Deep-Dive Guide
Air-Gapped EKS Cosign Keyless Timeout
failed to fetch rekor public keys: dial tcp 34... timeout
Private VPC has no Internet Gateway; Kyverno cannot query public Sigstore Rekor ledger. kubectl describe pod <pod> Switch to private AWS KMS Asymmetric Keys (awskms://arn:...) with AWS PrivateLink endpoints. ๐Ÿ›ก๏ธ DevSecOps & Patching Triage
Offboarded Employee Active 12h STS Window
Terminated employee continues running CLI commands
IdP de-provisioning only blocks new logins; active AWS STS session tokens (ASIA...) remain valid until expiry. Audit CloudTrail for userโ€™s STS role Instantly revoke active tokens via IAM policy condition: "DateLessThan": {"aws:TokenIssueTime": "<timestamp>"}. โ˜๏ธ Phase 1 Identity Center
AWS IAM OIDC Thumbprint Expiration
OpenIDConnect provider's HTTPS cert cannot be verified
GitHub/IdP rotated intermediate CA certificates; AWS IAM OIDC provider holds obsolete SHA-1 thumbprint. openssl s_client -connect token.actions.githubusercontent.com:443 Update thumbprint list via aws iam update-open-id-connect-provider-thumbprint. ๐ŸŒ Multi-Cloud Networking Triage
SCP Root Administrator Override Illusion
Root user in member account fails with Access Denied
Administrator assumes root bypasses SCPs; in AWS Organizations, SCPs define the account boundary first. aws organizations describe-policy Remove restrictive SCP from OU; never attach experimental SCPs to the Root Organization. โ˜๏ธ Phase 1 Landing Zones
Lambda VPC Subnet IP Starvation
EC2 ENI allocation failed: Subnet has no available IPs
Burst scaling of 500 concurrent Lambdas in shared /26 subnet exhausts IP pool for adjacent EKS nodes. aws ec2 describe-subnets Place Lambda in dedicated /20 subnets; share identical Security Group to maximize Hyperplane ENI reuse. ๐Ÿ“œ Phase 2 Python Lambda

โš™๏ธ Category 6: Runtime Throttling & Hidden Capacity Traps

Issue & Error Signature Root Cause Under the Hood Fast Triage Command Architectural Fix Respective Deep-Dive Guide
Linux CFS CPU Quota Latency Spike
15% Host CPU but 200ms API p99 latency spikes
Container resources.limits.cpu: "500m" exhausts 50ms quota in first 20ms; kernel freezes process for 80ms. cat /sys/fs/cgroup/cpu.stat | grep nr_throttled Eliminate CPU limits on latency-sensitive workloads; configure CPU requests for scheduling and burst freely. ๐Ÿงฑ Phase 0 Kernel & cgroups
Milvus QueryNode HNSW RAM OOM Kill
Milvus QueryNode Exit Code 137 (OOMKilled)
Memory sized only for raw float vectors, omitting the 1.5ร— RAM overhead of HNSW graph pointers. Check QueryNode Prometheus memory metrics Size memory via M_total = N ร— D ร— 4 ร— 1.5; switch to DiskANN for massive collections. ๐Ÿš€ GitOps & LLMOps Triage
vLLM PagedAttention CUDA Out of Memory
torch.cuda.OutOfMemoryError: CUDA out of memory
gpu_memory_utilization: 0.98 pre-allocated too much KV cache, leaving zero buffer for dynamic activations. kubectl exec -it <pod> -- nvidia-smi Tune gpu_memory_utilization=0.90; add --swap-space 16 to route temporary spikes to host RAM. ๐Ÿš€ GitOps & LLMOps Triage
ALB Pod Deregistration Race (502 Bad Gateway)
Rolling deployment triggers 10s burst of HTTP 502s
Pod receives SIGTERM and shuts down while AWS ALB deregistration delay (300s) is still draining. Check ALB Target Group 5xx metrics Set deregistration_delay.timeout_seconds=30; add container preStop hook: sleep 15. โ˜ธ๏ธ Phase 4 Ingress ALB
OpenCost Unallocated Idle Spend Dispute
FinOps dashboard flags 48% ($45k) as unallocated waste
OpenCost attributes costs strictly to pod requests, leaving Karpenter node spare buffer unallocated. Check OpenCost deployment environment variables Enable ALLOCATE_IDLE=true to distribute cluster buffer costs proportionally across tenant namespaces. ๐Ÿ›๏ธ Enterprise SRE & FinOps Triage
LLM-as-a-Judge Flapping in CI/CD
Prompt PR scores 96% in Run 1, but 92% (Fail) in Run 2
Judge LLM invoked with non-zero temperature or exhibits positional bias favoring the first answer. Inspect MLflow evaluation run parameters Set judge temperature=0.0; implement swap-and-aggregate evaluation (averaging both orderings). ๐Ÿš€ Phase 8 MLflow Evaluation
Azure AKS SNAT Port Exhaustion
Outbound HTTPS timeouts to payment APIs at <20% CPU
Standard Load Balancer pre-allocates only 1,024 SNAT ports per node; exhausted under high concurrency. az monitor metrics list --metric UsedSNATPorts Attach Azure NAT Gateway (64,512 dynamic SNAT ports per IP). ๐ŸŒ Multi-Cloud Networking Triage
ExpressRoute BGP Overriding Firewall UDR
Asymmetric TCP RSTs between On-Prem and Azure Spoke
ExpressRoute advertises /24 BGP routes into Spoke, beating the 0.0.0.0/0 Azure Firewall UDR via LPM. az network nic show-effective-route-table Set disable-bgp-route-propagation=true on Spoke route tables + UDR on GatewaySubnet. ๐ŸŒ Multi-Cloud Networking Triage
AKS Entra Workload Identity AADSTS70021
Key Vault CSI mount fails with no matching federated record
Trailing / mismatch in OIDC Issuer URL, wrong system:serviceaccount:ns:sa subject, or missing pod label. az identity federated-credential list Match exact AKS issuerUrl and add label azure.workload.identity/use: "true" to Pod. โ˜ธ๏ธ K8s & Stateful Triage
AKS Managed OS Disk IOPS Starvation
Nodes flip NotReady (PLEG unhealthy) during image pulls
Network-attached Managed OS Disk exhausts IOPS burst during parallel container image unpacking. az aks nodepool show --query osDiskType Use Ephemeral OS Disks (--node-osdisk-type Ephemeral) on local NVMe cache. โ˜ธ๏ธ K8s & Stateful Triage
Cosmos DB Hot Partition HTTP 429 at 15% RU
RequestRateTooLarge despite 85% idle total RU/s
Total RU/s is split evenly across N physical partitions (max 10k RU/s each); skewed key overloads 1 partition. KQL query on partitionKeyRangeId_s where statusCode_s == 429 Use Hierarchical Partition Keys ([/tenantId, /userId]) or write-sharding suffixes. ๐Ÿ›๏ธ Enterprise SRE & DB Triage