I'm building a POMDP-based CI/CD failure diagnosis agent. The model treats the actual cause of a failure as hidden and relies on observable evidence such as logs, exit codes, timing, and job outcomes to choose diagnostic actions. My current categories are: application or test defects; pipeline configuration defects; upstream dependency drift; runner resource exhaustion; and authentication or access failures. I want to know which important failure causes are missing. The categories should be mutually exclusive, so one failure belongs to only one category, and collectively exhaustive, so every possible failure has a category. How would you structure the hidden states, especially for failures such as service outages, network problems, and timeouts?
3 Answers
A useful missing category is external infrastructure or service unavailability. This covers a source-control provider, package registry, cloud API, deployment target, or other required service being down or returning server errors. It is different from authentication: the credentials may be valid, but the service cannot respond successfully.
You probably also need a network or transport failure category. DNS errors, connection resets, proxy problems, TLS negotiation failures, routing issues, and general connectivity loss can prevent a job from reaching a dependency even when the dependency itself is healthy. Timeouts are usually symptoms rather than a root-cause category, so classify them using the thing that timed out: a slow test, exhausted runner, unreachable service, or overloaded external API.
The categories become easier to keep exclusive if you define them by the earliest causal boundary. For example: repository code and tests, pipeline definition, dependency resolution, execution environment, network or external service, identity and authorization, and platform or provider outage. Also consider cancellation or policy failures, such as concurrency cancellation, manual interruption, quota limits, branch protection, or a quality gate rejecting the build. In practice, perfect exhaustiveness is difficult, so it helps to include an 'unknown or insufficient evidence' state and record secondary contributing factors separately.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures