SSIS Package Failures
Overview
The catalog holds all of it, in three places that nothing joins:
| What | Where |
|---|---|
| The error text | catalog.event_messages, at message type 120. |
| The task that raised it | The execution_path on the same row. |
| The values at that moment | catalog.event_message_context underneath it. |
Putting the three together is most of what this page is.
Where to find it
Expand a server in the tree, expand a database holding an Integration Services catalog, then SSIS → Package Failures.
Three decisions worth knowing about
Ended unexpectedly is on the page and is not called a failure
Status 6 means the ISServerExec process stopped without writing a result: a host reboot, a service restart, a kill. It leaves no error message at all.
Somebody hunting for the error message that explains it will not find one, so the page says so on the row instead of letting them look.
Errors are grouped with the digits flattened
The same broken connection manager produces the same sentence in five packages with a different row number in each, and grouping on the raw text turns one fix into five incidents.
Grouped, the By message view puts the one real cause at the top.
Sensitive context values are shown as “set”
The catalog masks them, and the mask is not the value. A row of asterisks reads like a password somebody could copy, so the cell says set instead.
The two views
| View | What each row is |
|---|---|
| By message | One row per distinct error, digits flattened, with the packages it hit. The view that finds the single cause. |
| By package | One row per failing execution, in time order. The view for “what happened last night”. |
Reading the grid
| Column | What it is |
|---|---|
| When | When the execution started. |
| Package / Project | What failed. |
| Task | The execution_path of the task that raised the error, which is the container tree without the package having to be opened. |
| Error | The message text. |
| Errors | How many error messages this execution produced. |
| Ran for | How long it got before it stopped. |
| Status | Failed, canceled, or ended unexpectedly. |
| Started by | The caller. |
Double-click a row for the full error and the context values captured underneath it.
The toolbar
| Control | Options | Default |
|---|---|---|
| Window | 24 hours, 7 days, 30 days | 7 days |
| View | By message, By package | By message |
| Show everything | Clears a drill through filter. |
Where the data comes from
| Source | What it gives |
|---|---|
catalog.event_messages |
The messages, at message type 120 for errors, with package_path and execution_path. |
catalog.event_message_context |
The connection strings, variable values and property values as they stood when the error was raised. |
catalog.executions |
The execution, its status, its caller and its timing. |
catalog.operation_messages |
The operation level text for a run with no package message. |
Related reports
| Report | Why you would go there |
|---|---|
| SSIS Packages Run | The whole night, not just the failures. |
| SSIS Inside the Package | Where in the package the time went before it broke. |
| SSIS Reruns | Whether this package only ever works on the second attempt. |
| SSIS Job Disagreement | Whether the Agent job reported success over this failure. |
| SSIS Connection Reach | The connection in the error text, and what else uses it. |
| SSIS Running Now | A package stuck rather than failed. |
Frequently asked questions
The status is “ended unexpectedly” and there is no error. There will not be one. The process that was running the package stopped without writing a result. Look at the SSIS host: a restart, a reboot, or something that killed the process.
Five packages failed and the By message view shows one row. Because it is one error in five places. That is the finding, and it is one fix.
The context values show “set” instead of the value. Those are sensitive values. The catalog returns them masked, and the mask carries no information, so the page says whether the value was supplied rather than showing asterisks.
Why is the task column a path with backslashes? Because execution_path is the container tree: \Package\Foreach Loop[3]\Data Flow Task. It tells you exactly where in the package the error came from without opening the package.