187 references to ValidationException
AnalyzeCiFailure (180)
AnalysisCommands.cs (7)
74
throw new
ValidationException
("--github-output must name a nonempty file path.");
79
throw new
ValidationException
("--github-output must name a file, not a directory.");
187
throw new
ValidationException
("--analysis-dir must not be empty");
201
throw new
ValidationException
($"Invalid path: {ex.Message}");
206
=> string.IsNullOrEmpty(path) ? throw new
ValidationException
("--evidence-dir is required for this command.")
220
throw new
ValidationException
("--history-dir must be outside the evidence and proposal input directories.");
247
throw new
ValidationException
("History checkout path contains a symbolic-link cycle.");
AnalysisInvocation.cs (1)
38
throw new
ValidationException
("Invocation paths must not contain newlines.");
AnalysisPublicationQueries.cs (4)
23
throw new
ValidationException
($"Failed to load {state} cause issues: {ex.Message}");
41
throw new
ValidationException
($"Unable to determine whether PR #{pr} is actionable: {ex.Message}");
46
throw new
ValidationException
($"Unable to determine whether PR #{pr} is actionable");
61
throw new
ValidationException
($"Failed to list existing analysis comments: {ex.Message}");
AnalysisPublisher.cs (15)
49
throw new
ValidationException
("Invalid publication repository");
57
throw new
ValidationException
("Invalid observation timestamp");
137
existing = Read(path) as JsonObject ?? throw new
ValidationException
($"Stored cause is not readable: {cause.FileName}");
140
throw new
ValidationException
($"Stored cause type is not readable: {cause.FileName}");
142
var stored = ToContract<PriorCauseRecord>(existing) ?? throw new
ValidationException
($"Stored cause is not readable: {cause.FileName}");
147
throw new
ValidationException
($"Stored cause ID must match its filename: {cause.FileName}");
153
throw new
ValidationException
($"New cause ID already exists in fresh history: {cause.FileName}");
158
throw new
ValidationException
($"Existing cause is missing from fresh history: {cause.FileName}");
161
?? throw new
ValidationException
($"New cause is missing its definition: {cause.FileName}");
183
throw new
ValidationException
("Linked cause issue detail does not match the cause; review its destination before retrying");
199
throw new
ValidationException
("Cause issue detail lookup returned invalid results");
205
throw new
ValidationException
("Cause issue detail lookup returned invalid results");
209
throw new
ValidationException
($"Cause {cause.Id} destination is locked; review its destination before retrying");
213
throw new
ValidationException
($"Cause {cause.Id} destination is closed as a duplicate; review its destination before retrying");
616
throw new
ValidationException
(createsComment
AnalysisPublisher.Overflow.cs (4)
28
throw new
ValidationException
("Multiple aggregate issues identify this source run.");
41
throw new
ValidationException
("Stored aggregate issue link conflicts with the source run.");
51
throw new
ValidationException
("Aggregate issue destination is not a uniquely identified, unlocked automation issue.");
76
throw new
ValidationException
("Aggregate continuation ownership or page identity is ambiguous.");
AnalysisRerunner.cs (8)
29
throw new
ValidationException
("Agent output must contain an items array.");
37
throw new
ValidationException
("Every agent output item must be an object with a string type.");
52
throw new
ValidationException
("Exactly one rerun_failed_jobs request is permitted.");
63
throw new
ValidationException
("Rerun request does not match the validated transient infrastructure analysis.");
102
throw new
ValidationException
($"Unable to read current run {bundle.Run.Url} attempt={bundle.Run.Attempt}: " +
108
throw new
ValidationException
($"Invalid current workflow run metadata for {bundle.Run.Url}.");
126
throw new
ValidationException
($"Unable to request rerun for {bundle.Run.Url} attempt={bundle.Run.Attempt}: " +
135
: throw new
ValidationException
($"{name} is required {purpose}.");
AnalysisValidator.cs (26)
25
throw new
ValidationException
("The proposal version, repository, run ID, or attempt does not match the collected evidence.");
29
throw new
ValidationException
("Test evidence is unavailable; diagnosis may continue, but publication and reruns are not authorized.");
35
throw new
ValidationException
("The proposal must contain jobs, tests, and causes arrays.");
39
throw new
ValidationException
("Proposal arrays must contain objects, not null.");
45
throw new
ValidationException
("Analysis failed-job IDs do not match the trusted failed jobs; classify every collected job exactly once without unknown or duplicate IDs.");
51
throw new
ValidationException
(TestMismatch +
60
throw new
ValidationException
("A confirmed runner-loss job without observed test failures must be classified as infrastructure.");
73
throw new
ValidationException
("Test classification must be 'flaky', 'code-issue' or 'transient-infra'.");
99
throw new
ValidationException
("Cause IDs must be unique within the proposal.");
149
throw new
ValidationException
(acceptedVerdicts.Count == 0
194
throw new
ValidationException
("Each cause must reference unique collected job IDs and test references, with at least one job.");
204
?? throw new
ValidationException
("An existing cause ID must occur in the collected prior-cause catalogue.");
213
throw new
ValidationException
("A new cause ID must not already occur in the collected catalogue.");
220
throw new
ValidationException
("A new cause needs a visible title of at most 238 characters and an error pattern of at most 500 characters.");
226
throw new
ValidationException
("Cause kind must be 'existing' or 'new', with only its documented fields.");
230
throw new
ValidationException
("A cause needs a lowercase hyphenated ID and a recognized cause type.");
234
throw new
ValidationException
("Infrastructure and main-breakage causes must not reference tests.");
241
throw new
ValidationException
("A cause references a test that is not in the collected evidence.");
265
throw new
ValidationException
("The evidence version, repository, run ID, attempt, scope, or GitHub run URL is invalid.");
273
throw new
ValidationException
("The evidence scope, event, branch, PR, and main context do not agree.");
282
throw new
ValidationException
("The captured main context has an invalid history state, candidate array, or identifier.");
290
throw new
ValidationException
("Evidence jobs must be a nonempty array with unique positive IDs, names, and complete step arrays.");
297
throw new
ValidationException
("Test evidence must have a recognized state, unique references, and empty failures when not applicable.");
307
throw new
ValidationException
("Each test failure needs an opaque reference, a collected job, all diagnostic strings, and at least one valid result source.");
314
throw new
ValidationException
("The prior-cause catalogue must contain unique readable cause identities and types.");
320
: throw new
ValidationException
("A decision reason must be a string.");
BranchHistoryReader.cs (6)
16
? branchName : throw new
ValidationException
("Branch name must not be empty.");
22
throw new
ValidationException
("Failed run ID must be numeric.");
64
throw new
ValidationException
("GitHub returned invalid workflow-run metadata.");
73
throw new
ValidationException
("A one-second workflow-run window reached GitHub's 1,000-result cap.");
86
throw new
ValidationException
("GitHub returned invalid workflow-run page metadata.");
95
throw new
ValidationException
($"GitHub returned only {unique} of {total} unique workflow runs.");
CauseHistoryStore.cs (3)
22
throw new
ValidationException
("History checkout destination already exists. Use a new directory to read current history.");
31
throw new
ValidationException
($"Unable to load CI failure history: {CiFailureJson.Display(DiagnosticTextSanitizer.Sanitize(reference.Error, limit: 4096))}");
38
throw new
ValidationException
("Unable to load CI failure history: invalid memory branch reference");
CauseIssueRenderer.cs (9)
57
throw new
ValidationException
("invalid stored occurrence history");
100
throw new
ValidationException
("IssueDraft title exceeds GitHub's 256-character limit");
111
throw new
ValidationException
("invalid occurrence row");
117
throw new
ValidationException
("occurrence total is smaller than the rendered history");
137
throw new
ValidationException
("issue identity marker does not match");
144
throw new
ValidationException
("ambiguous main issue type");
261
throw new
ValidationException
("unsupported occurrence section contents");
288
throw new
ValidationException
("ambiguous managed occurrence section");
309
throw new
ValidationException
("unsupported legacy occurrence section");
CiFailureJson.cs (1)
76
throw new
ValidationException
(message);
CollectionProjection.cs (3)
16
Name = Text(job["name"]) ?? throw new
ValidationException
("A collected job needs a name"),
21
Number = step?["number"]?.GetValue<int>() ?? throw new
ValidationException
("Collected job steps must provide their source number."),
62
PullRequest = candidate.PullRequest is not { } pr ? throw new
ValidationException
("A candidate merge needs a pull request.") : new CollectedCandidatePr
EvidencePreparation.cs (2)
97
throw new
ValidationException
("Run attempt must be a positive integer");
297
var bundle = invocation.Capture.Bundle ?? throw new
ValidationException
("Limited analysis requires captured run evidence.");
GitHubActionsIntegration.cs (3)
37
throw new
ValidationException
($"Invalid workflow output value for {name}");
57
throw new
ValidationException
("HAS_WORK must be true, false, or empty.");
66
throw new
ValidationException
("CI failure analysis did not reach an accepted terminal outcome " +
Infrastructure\AnalysisGitHubClient.cs (2)
32
throw new
ValidationException
("GitHub returned invalid paginated metadata");
40
throw new
ValidationException
($"GitHub returned invalid paginated metadata: expected an object at " +
Infrastructure\AnalyzerCommandExecutor.cs (1)
34
throw new
ValidationException
($"{executable} failed ({result.ExitCode}): {CiFailureJson.Display(DiagnosticTextSanitizer.Sanitize(result.Error, limit: 4096))}");
Infrastructure\GitHubJson.cs (2)
15
? id : throw new
ValidationException
("GitHub metadata must contain a positive 64-bit integer ID.");
19
? id : throw new
ValidationException
("GitHub metadata must contain a positive 64-bit integer ID.");
Models\PriorContextContracts.cs (1)
36
throw new
ValidationException
("Prior cause 'tests' and 'occurrences' must contain objects, not null entries.");
OverflowIssueRenderer.cs (2)
28
throw new
ValidationException
("One aggregate report entry exceeds the publication budget.");
55
throw new
ValidationException
("Aggregate report has missing or ambiguous managed sections.");
PriorCauseCatalogue.cs (2)
30
?? throw new
ValidationException
("Prior cause is not an object");
34
throw new
ValidationException
("Prior cause ID does not match its filename");
TestFailureReader.cs (5)
59
throw new
ValidationException
($"Cannot associate test artifact {artifactId} with a failed job: expected one job named " +
141
throw new
ValidationException
("Collected test failures must have a nonempty test name.");
175
=>
new
($"{message}; {TestResultArtifacts.Describe(artifact.Expectation)}");
186
throw new
ValidationException
("Collected test failures must have a nonempty test name. " +
197
throw new
ValidationException
("Conflicting diagnostics for the same test execution: " +
TestResultArchiveExtractor.cs (20)
52
throw new
ValidationException
("Invalid test results extraction budget");
57
throw new
ValidationException
($"downloaded archive exceeds the {maxArchiveBytes}-byte budget");
61
throw new
ValidationException
("downloaded archive size does not match artifact metadata");
66
throw new
ValidationException
("test results output directory already exists");
77
throw new
ValidationException
("archive entry count does not match its central directory");
88
throw new
ValidationException
("archive contains an unsafe path");
97
throw new
ValidationException
("archive contains an unsupported file type");
103
throw new
ValidationException
("archive contains an unsupported file type");
123
throw new
ValidationException
($"uncompressed data exceeds the {maxExpandedBytes}-byte budget");
133
throw new
ValidationException
("archive result data does not match its central directory");
169
throw new
ValidationException
("archive has no valid end-of-central-directory record");
175
throw new
ValidationException
("multi-disk archives are unsupported");
180
throw new
ValidationException
("ZIP64 archives exceed the supported extraction limits");
186
throw new
ValidationException
("archive central directory bounds are invalid");
196
throw new
ValidationException
("archive central directory is truncated");
200
throw new
ValidationException
("archive central directory contains an invalid record");
207
throw new
ValidationException
("archive central directory record exceeds its bounds");
211
throw new
ValidationException
($"archive contains more than the {maxEntries}-entry budget");
215
throw new
ValidationException
("archive contains an encrypted entry");
221
throw new
ValidationException
("archive entry count does not match its central directory");
TestResultArtifacts.cs (9)
88
throw new
ValidationException
($"Workflow conventions returned an invalid test artifact plan: {Describe(job)}");
92
throw new
ValidationException
($"test result artifact does not identify exactly one failed job: repeated expectation for {Describe(job)}");
114
throw new
ValidationException
($"test result artifact is missing for a failed test job: {Describe(job)}");
118
throw new
ValidationException
($"test result artifact does not identify exactly one failed job: {Describe(job)} matches={matches.Length}");
137
throw new
ValidationException
($"test result artifact count exceeds the download budget: required={requiredArtifacts.Count} limit={maxArtifacts}");
141
throw new
ValidationException
($"test result artifact has invalid or excessive size metadata: {Describe(invalid.Expectation)} " +
147
throw new
ValidationException
("test result artifact does not identify exactly one failed job: repeated artifact IDs among required results");
152
throw new
ValidationException
($"test result artifacts exceed the cumulative download budget: required={bytes} limit={maxTotalBytes}");
171
throw new
ValidationException
("test result artifact does not identify exactly one failed job: repeated artifact IDs among selected results");
TransientJson.cs (3)
58
throw new
ValidationException
("Cannot decode the versioned analysis contract: " +
76
throw new
ValidationException
("Cannot decode JSON: files must contain valid UTF-8 text.");
97
throw new
ValidationException
("An identifier must be canonical positive 64-bit decimal text without signs, spaces, or leading zeros.");
ValidationRules.cs (29)
26
throw new
ValidationException
($"Verdict {EnumText(analysis.Verdict.GetValueOrDefault())} is not permitted for run scope {EnumText(run.Scope)}");
34
throw new
ValidationException
("Analysis must classify every failed job with a recognized classification");
42
throw new
ValidationException
("Analysis failed-job IDs do not match the trusted failed jobs");
47
throw new
ValidationException
($"Analysis contains a failed-job classification that is not permitted for run scope {EnumText(run.Scope)}");
62
throw new
ValidationException
(TestMismatch);
69
throw new
ValidationException
(TestMismatch);
79
throw new
ValidationException
($"Cause {Display(cause.FileName)} is not referenced by the analysis summary");
83
throw new
ValidationException
($"Cause {Display(cause.FileName)} type {EnumText(cause.Type)} is not permitted for run scope {EnumText(run.Scope)}");
100
throw new
ValidationException
(IncompatibleJob(cause.FileName));
111
throw new
ValidationException
($"Cause {Display(cause.FileName)} contains unsupported or publisher-owned fields");
119
throw new
ValidationException
($"Cause {Display(cause.FileName)} cannot change type from {EnumText(prior.Type)} to {EnumText(cause.Type)}");
140
throw new
ValidationException
("Analysis failed_tests are incompatible with verdict transient-infra");
144
throw new
ValidationException
("A transient-infra verdict requires every failed job and cause to be an infrastructure failure");
150
throw new
ValidationException
("Analysis failed_tests are incompatible with verdict flaky-test");
154
throw new
ValidationException
("A flaky-test verdict requires at least one flaky job, only transient failed jobs, and only transient causes");
160
throw new
ValidationException
("Analysis failed_tests are incompatible with verdict code-issue");
164
throw new
ValidationException
("A code-issue verdict requires every failed job to be a code issue and must not include cause files");
170
throw new
ValidationException
("Analysis failed_tests are incompatible with verdict main-repository-breakage");
174
throw new
ValidationException
("A main-repository-breakage verdict requires every failed job and cause to be a main repository breakage");
180
throw new
ValidationException
("A mixed verdict for main requires a main-breakage job and cause plus transient job or test evidence and cause");
186
throw new
ValidationException
("A mixed verdict for a pull request requires a code-issue job plus transient job or test evidence and a transient cause");
206
throw new
ValidationException
("Failed-job classifications and persisted cause types do not match");
217
throw new
ValidationException
("Every infrastructure test observation must belong to an infrastructure job covered by an infrastructure cause.");
231
throw new
ValidationException
("Every transient, flaky, and main-breakage failed job must be covered by a matching cause");
241
throw new
ValidationException
("Cause test observation must reference a validated flaky test in its trusted job");
245
throw new
ValidationException
("Every cause job must contain a referenced test observation");
256
throw new
ValidationException
("Every flaky test and job observation must be covered by a matching cause");
267
throw new
ValidationException
("Unable to render the PR comment during validation");
271
throw new
ValidationException
("Rendered PR comment exceeds the 65000-byte publication budget");
WorkflowRunEvidenceCollector.cs (11)
61
throw new
ValidationException
("Invalid analysis repository");
109
throw new
ValidationException
("Trusted run metadata does not match the requested run");
115
var runAttempt = run["run_attempt"]?.GetValue<int>() ?? throw new
ValidationException
("Trusted run metadata is missing its attempt");
118
throw new
ValidationException
("Trusted run metadata must contain a positive attempt.");
122
throw new
ValidationException
("Trusted run metadata does not match the requested attempt");
130
throw new
ValidationException
($"Run {runId} belongs to workflow '{Display(Text(run["path"]) ?? "")}', not '{Display(_workflow.WorkflowPath)}'");
595
throw new
ValidationException
("GitHub returned invalid PR metadata");
599
throw new
ValidationException
("GitHub PR metadata does not match the known subject.");
644
throw new
ValidationException
("Workflow conventions cannot change a collected test job's identity: " +
723
throw new
ValidationException
("The shared artifact acquisition budget has been exhausted.");
730
throw new
ValidationException
("Test result artifact does not match the trusted run and SHA");
Workflows\AspireCiWorkflowConventions.cs (1)
53
throw new
ValidationException
("failed test job name does not match the artifact naming contract: " +
AnalyzeCiFailure.Tests (7)
AnalyzeCiFailureCohesionTests.cs (1)
21
var error = new
ValidationException
("client factory failed");
AnalyzeCiFailureDiagnosticsTests.cs (1)
249
invocation.Capture.Failure = new
ValidationException
("original history failure");
AnalyzeCiFailureProgressTests.cs (1)
68
invocation.Capture.Failure = new
ValidationException
("original acquisition error");
AnalyzeCiFailureRenderingTests.cs (3)
76
throw new
ValidationException
("Rendered cause issue exceeds the 65000-byte publication budget");
132
throw new
ValidationException
("occurrence section cannot fit within the publication budget");
147
throw new
ValidationException
("migrated issue body exceeds the publication budget");
TestServices\AlternateWorkflowConventions.cs (1)
27
throw new
ValidationException
("Alternate tests have an invalid artifact convention");