What
The gate fails intermittently inside detekt and dokka, with no finding to act on, and passes on an unchanged re-run. Both tools come from com.eignex.kmp on alpha analysis engines — detekt 2.0.0-alpha.6 on Java 22.
Three signatures seen in one session:
:klause:detekt fails after reporting 0 findings, with No receiver found in qualified expression at KtQualifiedExpression.getReceiverExpression while analysing an untouched test file.
:klause:detekt fails with @NotNull method com/intellij/openapi/application/AsyncExecutionService.getService must not return null.
:klause:dokkaGeneratePublicationHtml fails in CI with Error in translating of symbol (hasWideFactor) in a file the change never touched, while lintDocs --rerun-tasks passes locally on the same tree.
Each reproduced as one red run followed by a clean one with no edit in between.
Why
A red gate with no finding reads exactly like a real violation, so the cost is a bug hunt against a file that is fine — and in CI it blocks a PR that is green. detekt { toolVersion = ... } does configure from this repo, so pinning is possible here; whether a different alpha is less flaky is unmeasured, which is why this is an issue rather than a patch.
.rules now records how to recognise the flake, so the immediate harm is contained.
What
The gate fails intermittently inside detekt and dokka, with no finding to act on, and passes on an unchanged re-run. Both tools come from
com.eignex.kmpon alpha analysis engines — detekt 2.0.0-alpha.6 on Java 22.Three signatures seen in one session:
:klause:detektfails after reporting 0 findings, withNo receiver found in qualified expressionatKtQualifiedExpression.getReceiverExpressionwhile analysing an untouched test file.:klause:detektfails with@NotNull method com/intellij/openapi/application/AsyncExecutionService.getService must not return null.:klause:dokkaGeneratePublicationHtmlfails in CI withError in translating of symbol (hasWideFactor)in a file the change never touched, whilelintDocs --rerun-taskspasses locally on the same tree.Each reproduced as one red run followed by a clean one with no edit in between.
Why
A red gate with no finding reads exactly like a real violation, so the cost is a bug hunt against a file that is fine — and in CI it blocks a PR that is green.
detekt { toolVersion = ... }does configure from this repo, so pinning is possible here; whether a different alpha is less flaky is unmeasured, which is why this is an issue rather than a patch..rulesnow records how to recognise the flake, so the immediate harm is contained.