DEENESPTFRRUARHIKOZHNL

class ara::core::FutureErrorDomain

[SWS_CORE_00421] Upstream: RS_AP_00130

class FutureErrorDomain final :              public ErrorDomain {...};

Error domain for errors originating from ara::core::Future and ara::core::Promise

Header-Datei#include "ara/core/future_error_domain.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core
Basisklasse(n)ErrorDomain
Unique IDAs per ara::core::FutureErrorDomain in [SWS_CORE_90023]

User GuideAI-GENERATED

Defines the error domain for translation and exception handling of errors from Future and Promise.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2878f2cb481b Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Defines the error domain for translation and exception handling of errors from Future and Promise.

The class ara::core::FutureErrorDomain represents the central error domain for asynchronous operations in Future and Promise and provides type aliases for error codes and exceptions [SWS_CORE_00431], [SWS_CORE_00432]. Via Message(), it handles the thread-safe translation of numeric error values into readable text messages without returning null pointers [SWS_CORE_00443]. Provided exceptions are enabled in the compiler, it also enables throwing typed FutureException objects [SWS_CORE_00444].

Context

The class ara::core::FutureErrorDomain forms the specific error domain for all error situations arising during asynchronous communication and synchronization via ara::core::Future and ara::core::Promise. It derives finally from the general base class ara::core::ErrorDomain and encapsulates the identification as well as the textual translation of domain-specific root causes. For a structured definition, the class provides the type alias Errc for enumeration FutureErrc [SWS_CORE_00431] as well as the alias Exception for the exception type FutureException [SWS_CORE_00432]. Through this bundling, the domain acts as a central link between asynchronous core components and the overarching AUTOSAR error handling model.

Future ara::core::Future ErrorCode ara::core::ErrorCode Future->ErrorCode erzeugt Promise ara::core::Promise Promise->ErrorCode erzeugt FutureErrorDomain ara::core::FutureErrorDomain ErrorCode->FutureErrorDomain referenziert FutureException ara::core::FutureException FutureErrorDomain->FutureException created via ThrowAsException

Context diagram: Classification of the error domain between asynchronous components, error codes, and exceptions. Sources: [SWS_CORE_00431], [SWS_CORE_00432], [SWS_CORE_00444]

Lifecycle

Initialization is performed via the default constructor, which is declared as constexpr and specified as exception-safe and thread-safe [SWS_CORE_00441]. This allows instantiation already at compile time or during the static initialization phase of the application. Since error domains in the AUTOSAR Adaptive ecosystem are typically maintained as long-lived global or static singleton instances, the instance is not subject to dynamic state transitions; the specification requires complete thread safety for all querying interfaces [SWS_CORE_00442], [SWS_CORE_00443].

Usage Path

During regular operation, an application rarely comes into direct contact with an instance of FutureErrorDomain. Instead, the domain is consulted when an instance of ara::core::ErrorCode needs to be formatted or evaluated. First, method Name() identifies the domain via a character-based name [SWS_CORE_00442]. For logging or error analysis, Message() translates a numeric error code of base type ErrorDomain::CodeType into a readable string [SWS_CORE_00443]. The interface ensures that the returned pointer is never nullptr [SWS_CORE_00443]. If the application does not process errors via return codes but employs exception handling, method ThrowAsException() converts a passed ErrorCode object directly into the associated FutureException [SWS_CORE_00444].

Error name and exception handlingApplicationErrorCodeFutureErrorDomainMessage()Message(errorCode)const char* (nie nullptr)FehlertextoptC++ Ausnahmen aktiviertThrowAsException()ThrowAsException(errorCode)wirft FutureExceptionFutureException

Sequence diagram: Resolution of error details and conditional triggering of exceptions via the error domain. Sources: [SWS_CORE_00443], [SWS_CORE_00444]

Error Scenarios

Failures within this class are limited to explicit error forwarding when exception handling is enabled. While Name(), Message(), and the constructor are declared as noexcept and are fully exception-safe [SWS_CORE_00441], [SWS_CORE_00442], [SWS_CORE_00443], ThrowAsException() is explicitly annotated with noexcept(false) and is not exception-safe, as it throws a FutureException by design [SWS_CORE_00444]. An essential precondition concerns the toolchain configuration: If C++ exceptions are disabled in the compiler, ThrowAsException() must not participate in overload resolution according to specification [SWS_CORE_00444]. Invalid or unrecognized error codes do not lead to a crash or null pointer in Message(), but are presumably mapped to generic placeholder texts, since the specification mandates a guaranteed return not equal to nullptr [SWS_CORE_00443]. Question Q-f2e8c9249d4c0e13 (open)

This guide is based exclusively on the specification requirements of AUTOSAR Adaptive R25-11.

Member map

Constructors and destructor

1

Type aliases

2

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__core__FutureErrorDomain146 FutureErrorDomain + FutureErrorDomain() + Message() + Name() + ThrowAsException() nara__core__ErrorDomain335 ErrorDomain nara__core__FutureErrorDomain146->nara__core__ErrorDomain335

Detail view

Select an entry in the outline.

Constructors and destructor

Default constructor

constexpr FutureErrorDomain () noexcept;

Methods

Message function

Translate an error code value into a text message

const char * Message (ErrorDomain::CodeType errorCode) const noexcept override;
Name function

Return the name of this error domain

const char * Name () const noexcept override;

Throw the exception type corresponding to the given ErrorCode

void ThrowAsException (const ErrorCode &errorCode) const noexcept(false) override;

Type aliases

Errc type alias

Alias for the error code value enumeration

using Errc = FutureErrc;
Exception type alias

Alias for the exception base class

Method documentation

function FutureErrorDomain [SWS_CORE_00441] Upstream: RS_AP_00130

constexpr FutureErrorDomain () noexcept;

Default constructor

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 31762c8e577b Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The default constructor FutureErrorDomain() initializes an instance of the error domain ara::core::FutureErrorDomain synchronously and without input parameters [SWS_CORE_00441]. Since the function is declared as constexpr and noexcept, it provides complete exception safety and can already be evaluated at compile time [SWS_CORE_00441].

Regarding execution and error handling, the following conditions apply:

  • The initialization is thread-safe and throws no exceptions [SWS_CORE_00441]. No specific error codes or notifications to diagnostic or error managers are provided.
  • The resulting instance provides elementary methods of the domain, namely Name() for the domain name [SWS_CORE_00442], Message() for translating error codes into readable text [SWS_CORE_00443], as well as ThrowAsException() for throwing associated exceptions [SWS_CORE_00444]. Within the class scope, the type aliases Errc [SWS_CORE_00431] and Exception [SWS_CORE_00432] also exist.

In the interface structure, function GetFutureErrorDomain() provides a reference to the central global singleton instance [SWS_CORE_00480]. Direct manual instantiation via constructor [SWS_CORE_00441] in application scenarios is therefore likely to serve primarily for internal provisioning of this instance or special test purposes. Question Q-4b2f868ccb8a5487 (open) Specific error codes for this domain are created via MakeErrorCode() using enumeration FutureErrc [SWS_CORE_00490].

This usage note was generated automatically. All contents are based exclusively on the AUTOSAR specifications of release R25-11.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/core/future_error_domain.h"
Scopeclass ara::core::FutureErrorDomain
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00441
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00441@rel:R25-11#63692545
Content hash
63692545
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00441
Status: valid/unmigrated Version: rel:R25-11#82fe0b86 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00441@rel:R25-11#82fe0b86
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#636925452026-09-30
  • R19-11rel:R19-11#948f99b92026-10-14
  • R20-11rel:R20-11#4174c21b2026-10-14
  • R21-11rel:R21-11#4174c21b2026-10-14
  • R22-11rel:R22-11#53eccf022026-10-14
  • R23-11rel:R23-11#c36db8d62026-10-14
  • R24-11rel:R24-11#7d90a13c2026-10-14
  • R25-11rel:R25-11#82fe0b862026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Message [SWS_CORE_00443] Upstream: RS_AP_00130

const char * Message (ErrorDomain::CodeType errorCode) const noexcept override;

Translate an error code value into a text message

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: d455f998b9d1 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The member function Message of class ara::core::FutureErrorDomain serves to synchronously translate a numeric error code into a descriptive text message [SWS_CORE_00443]. The function is provided via the header file #include "ara/core/future_error_domain.h". As an input parameter, it takes errorCode of type ErrorDomain::CodeType. The return value is a pointer to a null-terminated character string (const char *) with the text message, which according to the specification is never nullptr [SWS_CORE_00443].

Concurrency and Limitations

The function is qualified as noexcept and specified as thread-safe and exception safe [SWS_CORE_00443]. It can therefore be safely called from concurrent threads without external synchronization. According to the requirements of the base class ara::core::ErrorDomain, the returned pointer permanently remains in the ownership of the respective subclass and must under no circumstances be released manually by the caller [SWS_CORE_00153].

Error Handling and Interaction

Message overrides the pure virtual base method Message of the abstract base class ara::core::ErrorDomain [SWS_CORE_00153], analogously to the implementation in other error domains such as ara::core::CoreErrorDomain [SWS_CORE_05243]. If the passed code does not originate from this domain, this constitutes a violation according to the base interface (WrongDomainOfAnErrorCodeViolation) [SWS_CORE_00153]. In typical usage scenarios, developers are likely to rarely call this method directly on the domain, since error messages are usually retrieved via the method Message of the object ara::core::ErrorCode [SWS_CORE_00518]. Question Q-a083e0ab17abf079 (open)

This usage note was created automatically and relies exclusively on the specification of release R25-11.

Header-Datei#include "ara/core/future_error_domain.h"
Scopeclass ara::core::FutureErrorDomain
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodethe error code value

Rückgabewert

TypBeschreibung
const char *the text message, never nullptr

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00443
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00443@rel:R25-11#a593b491
Content hash
a593b491
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00443
Status: valid/unmigrated Version: rel:R25-11#651e7339 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00443@rel:R25-11#651e7339
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#a593b4912026-09-30
  • R19-11rel:R19-11#9fe7cf222026-10-14
  • R20-11rel:R20-11#298eaa962026-10-14
  • R21-11rel:R21-11#3927e31c2026-10-14
  • R22-11rel:R22-11#22adfaf12026-10-14
  • R23-11rel:R23-11#689aa7532026-10-14
  • R24-11rel:R24-11#d7d2328b2026-10-14
  • R25-11rel:R25-11#651e73392026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Name [SWS_CORE_00442] Upstream: RS_AP_00130

const char * Name () const noexcept override;

Return the name of this error domain

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 24dcb3dad6eb Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous member function Name() of class ara::core::FutureErrorDomain is included via the header ara/core/future_error_domain.h [SWS_CORE_00442]. It takes no parameters and returns the name of the error domain as a pointer to a constant character string (const char *) [SWS_CORE_00442].

Regarding error handling and execution safety, the method is declared as noexcept and specified as exception safe [SWS_CORE_00442]. Neither are C++ exceptions thrown, nor are error conditions reported to DET or DEM.

Regarding concurrency, the function is unconditionally thread-safe and may be called concurrently from multiple contexts [SWS_CORE_00442]. Since it overrides the pure virtual interface ara::core::ErrorDomain::Name() [SWS_CORE_00152], its lifetime and ownership rules apply: The returned pointer remains the property of the error domain and must under no circumstances be deallocated by the caller [SWS_CORE_00152]. The returned string is null-terminated and guaranteed never to be nullptr [SWS_CORE_00152].

In interaction with the overall system, the method acts as a domain-specific manifestation of the general error domain interface [SWS_CORE_00152], comparable to the implementation in other domains such as ara::core::CoreErrorDomain [SWS_CORE_05242]. Interpretation: Since the caller must not manage the memory, the pointer presumably points to a static string literal whose validity spans the entire program execution time. Question Q-e1867dfe78e89540 (open)

This text was generated by an AI. The specification is always authoritative.

Header-Datei#include "ara/core/future_error_domain.h"
Scopeclass ara::core::FutureErrorDomain
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
const char *As per ara::core::FutureErrorDomain in [SWS_CORE_ 90023]

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00442
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00442@rel:R25-11#2eefab22
Content hash
2eefab22
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00442
Status: valid/unmigrated Version: rel:R25-11#42d3b301 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00442@rel:R25-11#42d3b301
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2eefab222026-09-30
  • R19-11rel:R19-11#89679cf92026-10-14
  • R20-11rel:R20-11#371005222026-10-14
  • R21-11rel:R21-11#371005222026-10-14
  • R22-11rel:R22-11#cbe4ee322026-10-14
  • R23-11rel:R23-11#7e58a5d92026-10-14
  • R24-11rel:R24-11#39172fc82026-10-14
  • R25-11rel:R25-11#42d3b3012026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ThrowAsException [SWS_CORE_00444] Upstream: RS_AP_00130

void ThrowAsException (const ErrorCode &errorCode) const noexcept(false) override;

Throw the exception type corresponding to the given ErrorCode

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 55a47ef84f08 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The member function ara::core::FutureErrorDomain::ThrowAsException converts a passed instance of ErrorCode synchronously into an exception and throws it as FutureException [SWS_CORE_00444]. The thrown exception encapsulates the passed error code [SWS_CORE_00444]. The class thus implements the pure virtual interface ThrowAsException of the base class ara::core::ErrorDomain [SWS_CORE_00154].

With regard to execution and constraints, the following specifications apply:

  • Invocation and parameters: The function expects as an input parameter a reference to a ErrorCode object (errorCode) and has no return value, as it terminates the control flow by throwing the exception [SWS_CORE_00444].
  • Error behavior and exception safety: The function is declared with noexcept(false) and classified as not exception safe [SWS_CORE_00444]. When called, the specified FutureException is always thrown [SWS_CORE_00444].
  • Concurrency: The implementation is classified as thread-safe and can thus be safely called from parallel execution contexts [SWS_CORE_00444].
  • Compiler restriction: If C++ exceptions are disabled in the compiler toolchain, this function must not participate in overload resolution [SWS_CORE_00444].

In interaction with the error system of Adaptive AUTOSAR, this function corresponds directly to ara::core::ErrorCode::ThrowAsException, whose behavior is defined as forwarding to the associated domain (this->Domain().ThrowAsException(*this)) [SWS_CORE_00519]. It thus corresponds to the domain-specific implementations in other domains such as ara::core::CoreErrorDomain::ThrowAsException, which throws a CoreException instead [SWS_CORE_05244].

This usage note was generated by an AI based on the specification AUTOSAR Adaptive R25-11.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/core/future_error_domain.h"
Scopeclass ara::core::FutureErrorDomain
Exception-Sicherheitnot exception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodethe ErrorCode instance

Rückgabewert

TypBeschreibung
None

Exceptions

FutureException an exception containing the given ErrorCode

Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00444
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00444@rel:R25-11#f1affd2c
Content hash
f1affd2c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00444
Status: valid/unmigrated Version: rel:R25-11#6bbbe4e8 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00444@rel:R25-11#6bbbe4e8
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f1affd2c2026-09-30
  • R19-11rel:R19-11#e7e5de062026-10-14
  • R20-11rel:R20-11#22aa0b0f2026-10-14
  • R21-11rel:R21-11#22aa0b0f2026-10-14
  • R22-11rel:R22-11#4c4dbf162026-10-14
  • R23-11rel:R23-11#6bcf1ade2026-10-14
  • R24-11rel:R24-11#5210aeac2026-10-14
  • R25-11rel:R25-11#6bbbe4e82026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Type alias documentation

type alias Errc [SWS_CORE_00431] Upstream: RS_AP_00130

using Errc = FutureErrc;

Alias for the error code value enumeration

Header-Datei#include "ara/core/future_error_domain.h"
Scopeclass ara::core::FutureErrorDomain
SymbolErrc

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00431
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00431@rel:R25-11#e6ae0c66
Content hash
e6ae0c66
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00431
Status: valid/unmigrated Version: rel:R25-11#9b73f991 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00431@rel:R25-11#9b73f991
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#e6ae0c662026-09-30
  • R19-11rel:R19-11#8bbfe93e2026-10-14
  • R20-11rel:R20-11#25efde862026-10-14
  • R21-11rel:R21-11#c2d041552026-10-14
  • R22-11rel:R22-11#39c269a02026-10-14
  • R23-11rel:R23-11#a0aec86d2026-10-14
  • R24-11rel:R24-11#f7a2d7ac2026-10-14
  • R25-11rel:R25-11#9b73f9912026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

type alias Exception [SWS_CORE_00432] Upstream: RS_AP_00130

using Exception = FutureException;

Alias for the exception base class

Header-Datei#include "ara/core/future_error_domain.h"
Scopeclass ara::core::FutureErrorDomain
SymbolException

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00432
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00432@rel:R25-11#50792cee
Content hash
50792cee
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00432
Status: valid/unmigrated Version: rel:R25-11#5bad67e1 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00432@rel:R25-11#5bad67e1
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#50792cee2026-09-30
  • R19-11rel:R19-11#eef299f32026-10-14
  • R20-11rel:R20-11#4249c0762026-10-14
  • R21-11rel:R21-11#4249c0762026-10-14
  • R22-11rel:R22-11#46f749662026-10-14
  • R23-11rel:R23-11#71091ef62026-10-14
  • R24-11rel:R24-11#71091ef62026-10-14
  • R25-11rel:R25-11#5bad67e12026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill