The application constructs HylandOutBoundContractClient once inside the OnBaseService constructor, calls its single operation once per batch, and never closes it. Nothing wraps the call in a retry, timeout, or cancellation policy.
Not supported; the call is synchronous with no cancellation token
—
ProcessOB3PRetention/Services/OnBaseService.cs:40
Yes
Message size limits
None set; not specified, transport default applies
Yes, on the binding in ProcessOB3PRetention/App.config
ProcessOB3PRetention/App.config
No
There is no retry, so a transient failure surfaces directly to the caller and ends the run at the first failing batch. The consumer would have to add its own retry, set binding timeouts, or add an outer timeout; none exists today. See Tech debt.
Rethrown with throw ex;, which resets the stack trace. The run ends at the first failing batch; batches completed earlier were already archived and marked processed
Propagates during Autofac resolution in Program.CreateApplication, before Execute, outside its try and catch*
No call site distinguishes a declared fault, a communication failure, or a timeout; the WSDL declares no faults. Process exit behavior on an unhandled exception is governed by SaifStandardProgramBase and ConsoleBase in SAIF.Framework.Windows*.
Failure
Surfaces as
Consumer action
Service unreachable or SOAP fault returned
A System.ServiceModel exception; the specific type is not distinguished in source
Logged by message and rethrown; the run stops
Timeout exceeded
A System.TimeoutException after the transport default wait*
Same as above
Missing endpoint setting key
ApplicationException raised by GetConfigSetting before the proxy constructor runs
Not handled; fails during container resolution, before the batch loop
Present-but-empty endpoint setting value
An argument or URI exception at proxy construction*
// One batch: archive, log the returned identifier, then mark the batch processedlongonbaseId=_onbaseService.ProcessRetention(batch.Select(x=>x.ClaimNumber).ToArray());LogService.Write($"Claims sent to OnBase for Retention Processing. OnBase Document ID: {onbaseId}");varretentionIds=batch.Select(x=>x.Id).ToArray();_imagingClient.MarkRetentionClaimsAsProcessed(retentionIds);
Scenario
Operations used
Notes
Process one batch of claim numbers in ThirdPartyRetentionProcessor.Execute
ArchiveDocument
Called through IOnBaseService.ProcessRetention; see Business rules
Note: Statements marked with * were inferred from code structure, naming
conventions, or contextual evidence where direct confirmation was not available
in source artifacts. Statements marked with ** could not be confirmed; treat
as unknown until verified.