AI-powered Jenkins plugin that explains pipeline and job failures with human-readable insights.
👉 Watch the hands-on demo on YouTube — setup, run, and see how AI explains your Jenkins job failures.
Tired of digging through long Jenkins logs to understand what went wrong?
Explain Error Plugin leverages AI to automatically interpret job and pipeline failures—saving you time and helping you fix issues faster.
Whether it’s a compilation error, test failure, or deployment hiccup, this plugin turns confusing logs into human-readable insights.
- 🔍 One-click error analysis on any console output
- ⚙️ Pipeline-ready with a simple
explainError()
step - 💡 AI-powered explanations using OpenAI GPT models or Google Gemini
- 🌐 Rich web UI for viewing AI-generated insights
- 🎯 Customizable: set provider, model, API endpoint, log filters, and more
- Jenkins 2.479.3+
- Java 17+
- AI API Key (OpenAI or Google)
-
Install via Jenkins Plugin Manager:
- Go to
Manage Jenkins
→Manage Plugins
→Available
- Search for "Explain Error Plugin"
- Click
Install
and restart Jenkins
- Go to
-
Manual Installation:
- Download the
.hpi
file from releases - Upload via
Manage Jenkins
→Manage Plugins
→Advanced
- Download the
- Go to
Manage Jenkins
→Configure System
- Find the "Explain Error Plugin Configuration" section
- Configure the following settings:
Setting | Description | Default |
---|---|---|
Enable AI Error Explanation | Toggle plugin functionality | ✅ Enabled |
AI Provider | Choose between OpenAI or Google Gemini | OpenAI |
API Key | Your AI provider API key | Required. Get from OpenAI or Google AI Studio |
API URL | AI service endpoint | Enter the endpoint URL of your chosen AI provider |
AI Model | Model to use for analysis | Specify the model name offered by your selected AI provider |
- Click "Test Configuration" to verify your setup
- Save the configuration
This plugin supports Configuration as Code for automated setup. Use the explainError
symbol in your YAML configuration:
OpenAI Configuration:
unclassified:
explainError:
enableExplanation: true
provider: "OPENAI"
apiKey: "${AI_API_KEY}"
apiUrl: "https://api.openai.com/v1/chat/completions"
model: "gpt-3.5-turbo"
Google Gemini Configuration:
unclassified:
explainError:
enableExplanation: true
provider: "GEMINI"
apiKey: "${AI_API_KEY}"
apiUrl: "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent"
model: "gemini-1.5-flash"
Environment Variable Example:
export AI_API_KEY="your-api-key-here"
This allows you to manage the plugin configuration alongside your other Jenkins settings in version control.
- Models:
gpt-3.5-turbo
,gpt-4
,gpt-4-turbo
- API Key: Get from OpenAI Platform
- Endpoint:
https://api.openai.com/v1/chat/completions
- Best for: Comprehensive error analysis with excellent reasoning
- Models:
gemini-1.5-flash
,gemini-1.5-pro
- API Key: Get from Google AI Studio
- Endpoint:
https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent
- Best for: Fast, efficient analysis with competitive quality
Use explainError()
in your pipeline (e.g., in a post
block):
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
// Your build steps here
sh 'make build'
}
}
}
}
post {
failure {
// Automatically explain errors when build fails
explainError()
}
}
}
Optional parameters:
explainError(
maxLines: 500,
logPattern: '(?i)(error|failed|exception)'
)
Output appears in the sidebar of the failed job.
Works with Freestyle, Declarative, or any job type.
- Go to the failed build’s console output
- Click Explain Error button in the top
- View results directly under the button
Issue | Solution |
---|---|
API key not set | Add your key in Jenkins global config |
Auth or rate limit error | Check key validity, quota, and provider plan |
Button not visible | Ensure Jenkins version ≥ 2.479.3, restart Jenkins after installation |
Enable debug logs:
Manage Jenkins
→ System Log
→ Add logger for io.jenkins.plugins.explain_error
- Use
explainError()
inpost { failure { ... } }
blocks - Apply
logPattern
to focus on relevant errors - Monitor your AI provider usage to control costs
- Keep plugin updated regularly
- GitHub Issues for bug reports and feature requests
- Contributing Guide if you'd like to help
- Security concerns? Email security@jenkins.io
Licensed under the MIT License.
Built with ❤️ for the Jenkins community. If you find it useful, please ⭐ us on GitHub!