kubernetes
Kubernetes API Status Reasons
Machine-readable reason strings returned in the Status.reason field of Kubernetes API error responses. These accompany an HTTP status code and provide a stable identifier for the error category, independent of the human-readable message.
29 codes
references kubernetes.io/docs/reference/kubernetes-api/common-definitions/status/pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1
· All codes 29 codes
- AlreadyExists Already exists The resource being created already exists. Use a different name or delete the existing resource first. Returned with HTTP 409.
- BadRequest Bad request The request cannot be processed. The message typically explains the problem, such as a malformed JSON body. Returned with HTTP 400.
- Conflict Conflict A conflict was detected, typically because a resource was modified between a GET and an update. Retry with a fresh resource version. Returned with HTTP 409.
- ContainerCannotRun Container cannot run The container was created but the runtime determined it cannot be executed, often because the binary architecture does not match the node.
- CrashLoopBackOff Crash loop backoff The container keeps crashing and restarting. The kubelet is backing off restarts exponentially. Check the container logs to diagnose the root cause.
- CreateContainerError Create container error The container runtime could not create the container. Common causes: invalid security context, missing volume mounts, or node-level configuration issues.
- DeadlineExceeded Deadline exceeded The pod did not complete within the activeDeadlineSeconds limit and was terminated by the kubelet.
- ErrImagePull Image pull error The kubelet could not pull the container image. Common causes: the image name or tag is wrong, the registry is unreachable, or image pull secrets are missing or invalid.
- Evicted Evicted The pod was evicted from the node, typically because the node was under resource pressure (memory or disk). The pod will be rescheduled if managed by a controller.
- Expired Expired The resource version or watch bookmark has expired. The client must re-list or re-establish the watch from the beginning. Returned with HTTP 410.
- Forbidden Forbidden The request is understood but the caller does not have permission to perform the action. Check RBAC ClusterRole and Role bindings. Returned with HTTP 403.
- Gone Gone The resource previously existed but has been permanently deleted. Returned with HTTP 410, often for watch events on expired resources.
- ImagePullBackOff Image pull backoff The kubelet failed to pull the image repeatedly and is backing off. Check the image name, registry credentials, and network access from the node.
- InternalError Internal error An unexpected error occurred inside the server. This is a bug or infrastructure problem, not a client error. Check the kube-apiserver logs. Returned with HTTP 500.
- Invalid Invalid The request was structurally valid but failed validation. The Status.details field contains a list of field-level causes identifying each invalid field. Returned with HTTP 422.
- MethodNotAllowed Method not allowed The HTTP method used is not supported for this resource. For example, PATCH on a resource that only supports GET and DELETE. Returned with HTTP 405.
- NotAcceptable Not acceptable The server cannot produce a response in the content type requested by the Accept header. Returned with HTTP 406.
- NotFound Not found The resource does not exist. Returned with HTTP 404. The message will identify the resource type and name.
- OOMKilled OOM killed The container was killed by the Linux OOM (Out Of Memory) killer because it exceeded its memory limit. Increase the resources.limits.memory, or fix the memory leak.
- Pending Pending The pod has been accepted by the cluster but one or more containers have not started. Common causes: insufficient resources, image pull in progress, or volume provisioning pending.
- RequestEntityTooLargeError Request entity too large The request body exceeds the server's maximum allowed size. Returned with HTTP 413.
- RunContainerError Run container error The container was created but could not be started. Check that the entrypoint or command is correct and executable inside the image.
- ServerTimeout Server timeout The server could not return a response in a reasonable time. This is a transient error; retry with exponential backoff. Returned with HTTP 500.
- ServiceUnavailable Service unavailable The server is currently unable to handle the request. This is transient; retry with exponential backoff. Returned with HTTP 503.
- Timeout Timeout The request timed out before it could be completed. The retryAfterSeconds field suggests how long to wait before retrying. Returned with HTTP 504.
- TooManyRequests Too many requests The client has sent too many requests. The retryAfterSeconds field indicates when to retry. Returned with HTTP 429.
- Unauthorized Unauthorised The request requires authentication. The caller has not presented valid credentials. Returned with HTTP 401.
- Unschedulable Unschedulable The scheduler could not find a node that satisfies all the pod's requirements. Check node selectors, taints, resource requests, and affinity rules.
- UnsupportedMediaType Unsupported media type The Content-Type of the request body is not supported. Use application/json or application/strategic-merge-patch+json. Returned with HTTP 415.