Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DevOps Error Library

The open-source encyclopedia of real DevOps & cloud infrastructure errors β€” searchable, structured, and battle-tested.

Errors Technologies License: CC BY 4.0 PRs Welcome CI

A growing, community-maintained troubleshooting reference for Kubernetes, Docker, Terraform, OpenStack, Linux and more β€” one production error per page, with real logs, real diagnostic commands, and a working local search CLI.


When something breaks at 3 a.m., you don't want a chatbot guessing β€” you want the exact error string, the cause, the read-only command that confirms it, and the fix an experienced SRE would actually run. DevOps Error Library is that reference: a curated, structured knowledge base where every error lives in its own Markdown page under errors/<technology>/, validated in CI and indexed for fast offline search.

It currently documents ~167 real errors across 14 technologies β€” Kubernetes, Docker, Terraform, OpenStack, Linux, GitLab, Prometheus, Grafana, RabbitMQ, Redis, PostgreSQL, MySQL, Ceph and Linstor β€” and is architected to scale to 10,000+. The count grows every week, and contributions are welcome.

Search demo errlib search running locally β€” placeholder screenshot.


✨ Why this exists / Features

Most error "solutions" on the web are scattered, stale, or auto-generated filler. This library is the opposite:

  • One error, one page. Every entry is a single self-contained Markdown file β€” easy to read, link, diff, and review.
  • A fixed, predictable structure. All 14 sections, every time. You always know where the Resolution and Diagnostic Commands are.
  • Real production logs. Error messages are the verbatim strings engineers actually paste into a search box β€” including realistic variants.
  • Real, read-only diagnostic commands. Every kubectl, docker, terraform, openstack or journalctl command is something a senior engineer would safely run to investigate.
  • A fast local search CLI. errlib search works fully offline against a JSON index β€” no SaaS, no telemetry, no signup.
  • Zero-dependency-ish. The errlib tool needs only Python β‰₯ 3.10 and PyYAML. The corpus itself is plain Markdown.
  • CI-validated. Front matter, sections, slugs and the generated index are checked on every pull request β€” no malformed pages get merged.
  • SEO-friendly, human-readable titles & slugs. Pages are named the way people search ("Kubernetes CrashLoopBackOff", "Terraform State Lock"), so they're findable from a browser too.

πŸ“ Directory Overview

Every error is a Markdown file under errors/<technology>/. OpenStack is large enough that it is split further by service.

errors/
β”œβ”€β”€ README.md              # generated index β€” categories + counts
β”œβ”€β”€ kubernetes/
β”‚   β”œβ”€β”€ kubernetes-crashloopbackoff.md
β”‚   β”œβ”€β”€ kubernetes-imagepullbackoff.md
β”‚   └── ...
β”œβ”€β”€ docker/
β”œβ”€β”€ terraform/
β”œβ”€β”€ linux/
β”œβ”€β”€ gitlab/
β”œβ”€β”€ prometheus/
β”œβ”€β”€ grafana/
β”œβ”€β”€ rabbitmq/
β”œβ”€β”€ redis/
β”œβ”€β”€ postgresql/
β”œβ”€β”€ mysql/
β”œβ”€β”€ ceph/
β”œβ”€β”€ linstor/
└── openstack/             # split by service
    β”œβ”€β”€ nova/
    β”œβ”€β”€ cinder/
    β”œβ”€β”€ neutron/
    β”œβ”€β”€ glance/
    β”œβ”€β”€ keystone/
    β”œβ”€β”€ heat/
    β”œβ”€β”€ horizon/
    β”œβ”€β”€ swift/
    β”œβ”€β”€ placement/
    └── ironic/

See the live counts in errors/README.md.


πŸ”Ž Search

The errlib CLI gives you offline full-text search, filtering, validation, indexing and stats.

Install

git clone https://github.com/devopsaitoolkit/devops-error-library.git
cd devops-error-library
pip install -e .

That installs the errlib console script (Python β‰₯ 3.10, only PyYAML required).

Search the library

# Free-text search across titles, messages, tags and bodies
errlib search "CrashLoopBackOff"

# Filter by technology and severity
errlib search --tech kubernetes --severity high

# Filter by tag
errlib search --tag scheduling

# Match only against the error message (great for pasting a log line)
errlib search --message "no valid host"

# Limit the number of results
errlib search "permission denied" --limit 5

Example output:

[high    ] Kubernetes CrashLoopBackOff
           kubernetes/kubernetes-crashloopbackoff.md  (kubernetes)  score=42
[high    ] Kubernetes OOMKilled
           kubernetes/kubernetes-oomkilled.md  (kubernetes)  score=18

2 result(s).

Other commands

errlib validate          # validate front matter + sections + slugs (what CI runs)
errlib index             # build the JSON search index
errlib stats             # per-technology document counts
errlib new "Kubernetes Evicted Pod" --tech kubernetes --severity high

errlib new also accepts --tags tag1,tag2 and --subdir <service> (for the OpenStack services). Pass --root <path> to any command to point at a different errors/ tree.


πŸ“„ The Error Page Format

Every page begins with YAML front matter and then follows the same 14 sections. The canonical template lives in ERROR_TEMPLATE.md.

---
title: "Kubernetes CrashLoopBackOff"
slug: kubernetes-crashloopbackoff
technologies: [kubernetes]
severity: high            # info | low | medium | high | critical
tags: [kubernetes, pod, scheduling, crashloopbackoff, production]
related: [kubernetes-imagepullbackoff, kubernetes-oomkilled]
last_reviewed: 2026-06-27
---

The fixed sections, in order:

  1. Error Message β€” the verbatim log/CLI string (plus realistic variants)
  2. Description β€” what it means and where it comes from
  3. Technologies β€” component / subsystem
  4. Severity β€” operational impact, for triage
  5. Common Causes β€” ordered by how often they occur in production
  6. Root Cause Analysis β€” the mechanism, not just the symptom
  7. Diagnostic Commands β€” real, read-only commands
  8. Expected Results β€” what healthy vs. broken output looks like
  9. Resolution β€” numbered, actionable fix steps
  10. Validation β€” how to confirm the fix worked
  11. Prevention β€” guardrails so it doesn't recur
  12. Related Errors β€” links to neighbouring pages
  13. References β€” official docs + deeper guides
  14. Tags β€” for search and navigation

A complete real example: errors/kubernetes/kubernetes-crashloopbackoff.md.


🧭 Browse

Each category folder has its own generated README.md listing every error with its severity and tags.


🀝 Contributing

Pull requests are very welcome β€” this is a community knowledge base and it only gets better as more engineers add the errors they've actually fought. Read the full guide in CONTRIBUTING.md.

The short version:

errlib new "Terraform State Lock" --tech terraform --severity high
# 1. Fill in every section with real logs and read-only diagnostics
# 2. errlib validate        # must pass
# 3. open a pull request

CI validates the front matter, sections, slugs, rebuilds the index, and runs the tests. Quality bar: senior DevOps / SRE level β€” accuracy over quantity, no fabricated logs.


πŸ—Ί Roadmap

The corpus is the foundation. Everything else reads the same Markdown tree and JSON index. See ROADMAP.md for the full plan. Highlights on the way:

  • πŸ” CLI search tool β€” local fuzzy search (partly done via errlib)
  • 🌐 Static docs site + web search UI
  • πŸ”Œ REST API over the JSON index
  • βš™οΈ GitHub Action that surfaces matching errors on CI failures
  • πŸ€– AI troubleshooting suggestions grounded in the corpus
  • 🧠 MCP server so AI agents can query the library
  • 🧩 VS Code extension
  • πŸ‘ Community voting + error popularity rankings

❓ FAQ

Is this AI-generated slop? No. Every page is hand-structured, reviewed by a human, and validated in CI against a fixed schema (front matter + 14 sections + slug rules). The bar is senior engineer quality: real error strings, real read-only commands, no fabricated logs.

How do I search offline? pip install -e ., then errlib search "<query>". It runs entirely against a local JSON index β€” no network, no account, no telemetry. Filter with --tech, --tag, --severity and --message.

How do I add an error? errlib new "<Title>" --tech <tech> to scaffold the page, fill in every section with real logs and read-only diagnostics, run errlib validate, and open a PR. Full guide in CONTRIBUTING.md.

What's the quality bar? Accuracy over quantity. Verbatim error messages, read-only diagnostic commands only, correct front matter, kebab-case slug matching the filename, useful tags and related links. If errlib validate fails, CI fails.

How big will it get? The structure is designed to scale to 10,000+ documented errors. We're at ~167 today and growing β€” see the per-technology targets in the roadmap.

What technologies are covered? Today: Kubernetes, Docker, Terraform, OpenStack (split by service), Linux, GitLab, Prometheus, Grafana, RabbitMQ, Redis, PostgreSQL, MySQL, Ceph and Linstor. More are added as contributors bring them.

What's the license? Error content is CC BY 4.0; the errlib code and scripts are MIT. See License.


πŸ› Architecture

The library is intentionally boring and durable: a tree of plain Markdown files is the single source of truth. The errlib tool reads that tree, validates it, and compiles it into a JSON index. Everything downstream β€” the CLI today, and the planned web UI, REST API and MCP server tomorrow β€” reads that same index. No database, no lock-in, fully versioned in Git.

errors/**/*.md            (the corpus β€” Markdown, one error per file)
        β”‚
        β–Ό
   errlib index / validate   β†’   errlib/index.json   (the JSON search index)
        β”‚
        β”œβ”€β”€β–Ά errlib search        (local CLI β€” available today)
        β”œβ”€β”€β–Ά static docs site / web search UI   (planned)
        β”œβ”€β”€β–Ά REST API             (planned)
        └──▢ MCP server / AI agents             (planned)

πŸ“š More troubleshooting


πŸ“„ License

If this library saved your incident, ⭐ the repo and contribute the next error.

About

πŸ“š The open-source knowledge base of real DevOps, Cloud, Kubernetes, Docker, Terraform & OpenStack errors β€” every error documented with root causes, diagnostic commands and fixes. Searchable with the errlib CLI.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages