Table of Contents

Class PersonalDataAnalyzerUnavailableException

Namespace
MailFathom.Application.SensitiveContent.Detection
Assembly
MailFathom.Application.dll

The failure a personal-data analyzer that cannot answer is reported as, for a deployment whose scanner is switched on.

public sealed class PersonalDataAnalyzerUnavailableException : MailFathomException, ISerializable
Inheritance
PersonalDataAnalyzerUnavailableException
Implements
Inherited Members

Remarks

Raised by IPersonalDataAnalyzerProbe and by nothing on a serving path. The scanner fails closed, so an instance in this state refuses every guarded read, derived write, and egress for as long as it lasts; what the readiness probe does with that is take the instance out of traffic, which is diagnosed at once, while an instance that logged and went on serving is not.

No message here carries the analyzer's address, because a message is what reaches a log and src/AGENTS.md § Failures lists a host name beside a credential among the things one may never carry. Each one names SensitiveContent:PersonalDataAnalyzer:Endpoint instead — the key an operator edits to repair any of these three states, and the one thing they need to be told, since the value is already in the file they would open. The resolved address stays on Endpoint for a caller with somewhere safe to put it. Nor does a message carry anything the analyzer wrote: the status a refusal is reported with is the caller's own rendering of the status code, because a proxy or a wrong service at that address composes both the body and the reason phrase.

Properties

Endpoint

Gets the analyzer address the probe could not get an answer from.

ErrorCode

Gets the stable code identifying this failure to a boundary that must report it without naming a type.

Methods

DetectsNothingFor(string, SensitiveContentCategory)

Reports that the analyzer detects nothing the switched-on categories map onto.

DidNotAnswerInTime(string, TimeSpan)

Reports that the analyzer did not answer the whole availability probe within the budget one scrape is allowed.

NotReached(string, Exception)

Reports that the configured analyzer could not be reached at all.

RecognizesNothingIn(string, string)

Reports that the analyzer recognises nothing at all in one of the configured languages.

Refused(string, string)

Reports that the analyzer answered the probe with a refusal.