# Retry Failed Files Job
Re-enqueues provisioning files that failed processing after a configurable delay period.
Configuration class: RetryJobCfg
Schedule base: IntervalScheduleCfg (runs at regular intervals)
# Purpose
When provisioning files (Excel, JSON, etc.) fail to process, they are moved to an error folder with details about the failure. This job:
- Monitors the error folder for failed files
- Re-enqueues files after a minimum age (to ensure the underlying issue is resolved)
- Limits retry attempts to prevent infinite loops
- Automatically resets retry counts on service restart
Useful for:
- Recovering from transient failures (network timeouts, temporary locks)
- Allowing time for dependent systems to be available before retrying
- Automating retry without manual intervention
# Configuration
# Disabled
- Type:
bool? - Default: —
- Required: No
- Description: Disable this job without removing configuration
# MinimumFileAge
- Type:
TimeSpan - Default:
00:01:00(1 minute) - Required: No
- Description: Minimum age of a failed file before it's eligible for retry. Delay = age + scheduling interval. Example:
00:05:00waits at least 5 minutes before retrying.
# MaximumRetries
- Type:
int - Default:
3 - Required: No
- Description: Maximum number of times to re-enqueue a file before giving up. Example:
5allows up to 5 retry attempts. Note: Retry count resets when the provisioning service restarts.
# CurrentState
- Type:
RetryJobState - Default: —
- Required: No
- Description: System-managed — stores current job state
# Scheduling Properties
# Interval
- Type:
TimeSpan - Default:
00:01:00(1 minute) - Description: How often to check for failed files eligible for retry.
# Example Configuration
{
"Disabled": false,
"MinimumFileAge": "00:05:00",
"MaximumRetries": 3,
"Interval": "00:01:00",
"CurrentState": {}
}
# How It Works
- Job runs at the configured
Interval(default: every minute) - Scans the error folder for failed files
- For each failed file:
- Checks if file age >=
MinimumFileAge - If eligibility criteria met and retry count <
MaximumRetries:- Moves file back to the watch folder for reprocessing
- Increments retry counter
- Checks if file age >=
- Files exceeding
MaximumRetriesremain in the error folder
# File Location
Failed files are stored in:
[watch-folder]/Error/[filename].xlsx
When re-enqueued, files are moved back to:
[watch-folder]/[filename].xlsx
# Failure Scenarios
Common scenarios that benefit from retry:
- Transient network issues: Connection timeout, briefly unavailable server
- Temporary locks: Another process briefly locked the library
- Service dependencies: External system temporarily offline, now recovered
- Resource exhaustion: Server ran out of memory/connections, now recovered
Note: Permanent failures (invalid configuration, missing parent, bad data format) will fail again and should be fixed manually.
# Notes
- Minimum age: Set to at least 1 minute to allow time for underlying issues to resolve
- Retry limits:
MaximumRetriesof 3-5 is typical; increase for high-value operations, decrease for time-sensitive provisioning - Service restarts: Retry counters reset on provisioning service restart, allowing stuck files to be retried again
- Manual intervention: Files in the error folder can be manually reviewed and fixed before the next retry window
- Audit trail: Check provisioning logs for error details to understand why files failed
# Related
- Jobs — other background jobs
- Scheduling Jobs — schedule configuration