# Incident Postmortem Report
## Application Outage Due to Repeated OOMKilled Events

## 1. Incident Overview
Incident ID: INC-2026-001
Severity: SEV-2
Duration: 45 minutes
Service: Ghaymah Hosted Application
Status: Resolved

The application experienced repeated downtime caused by Kubernetes OOMKilled events.
The container exceeded its allocated memory limit, causing Kubernetes to terminate
and restart the container repeatedly.


## 2. Executive Summary
On July 28, 2026, the application experienced intermittent availability issues
for approximately 45 minutes.

The root cause was excessive memory consumption inside the application container.
Once the container exceeded its configured memory limit, Kubernetes terminated
the container with an OOMKilled event.

The service recovered after adjusting resource configuration and implementing
a better scaling strategy.

## 3. Impact
During the incident:
- Users experienced 502/503 errors.
- API requests failed intermittently.
- Application availability decreased for 45 minutes.
- No data loss occurred because the application was stateless.


## 4. Detection
The incident was detected through:
- Kubernetes container restart events.
- OOMKilled status reported by the platform.
- Increased application response latency.
- Monitoring alerts triggered by high memory utilization.

## 5. Timeline
| Time | Event |
|---|---|
| 10:00 | Traffic increased above normal level |
| 10:02 | Container memory usage exceeded 90% |
| 10:04 | Kubernetes terminated container (OOMKilled) |
| 10:05 | New container instance started |
| 10:10 | Memory increased again and container crashed |
| 10:45 | Service stabilized after mitigation |

## 6. Root Cause Analysis

### Immediate Cause
The container exceeded its configured memory limit.

### Root Cause
The application was running with insufficient memory resources
and no horizontal scaling mechanism.
Possible contributing factors:
- Memory leak inside the application.
- Missing memory-based autoscaling.
- No early warning alerts.
- Single container handling all traffic.

## 7. Resolution
The incident was resolved by:

- Increasing container memory allocation.
- Restarting unhealthy workloads.
- Reviewing application memory usage.
- Preparing an autoscaling policy.

## 8. Preventive Actions
| Action | Priority |
|---|---|
| Enable Horizontal Pod Autoscaler | High |
| Add memory utilization alerts | High |
| Perform memory profiling | Medium |
| Improve health checks | Medium |
| Add resource limits based on metrics | High |


autoscaling:
  minReplicas: 2
  maxReplicas: 8

  metrics:
    memory:
      targetUtilization: 70

    cpu:
      targetUtilization: 75

  behavior:
    scaleUp:
      stabilizationWindowSeconds: 60

    scaleDown:
      stabilizationWindowSeconds: 300

resources:
  requests:
    memory: 256Mi
    cpu: 500m

  limits:
    memory: 512Mi
    cpu: 1000m


## Monitoring Strategy
The following monitoring improvements will be implemented:
- Memory usage dashboard.
- Alert when memory exceeds 75%.
- Critical alert when memory exceeds 90%.
- Monitor container restart count.
- Track OOMKilled events.
- Synthetic health checks.


