---
id: CAP-PFM-INT-010
title: Determine the result of uncertain or overdue calls
feature: FEAT-PFM-INT-03
product_area: platform
module: integrations
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - CAP-INT-EXE-006
  - CAP-INT-EXE-015
  - CAP-INT-EXE-017
  - CAP-INT-EXE-018
  - CAP-INT-EXE-020
  - CAP-INT-EVT-010
  - CAP-INT-ADP-013
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D2'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D3'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D4'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D6'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D8'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#A4'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S09'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S10'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S11'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S17'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S18'
purpose: Rhythm establishes what happened to unfinished calls and escalates outcomes it cannot determine.
outcomes:
  - Uncertainty triggers investigation rather than resubmission.
  - Settlement produces one result and one applicable completion event.
  - Unresolved calls reach administrators for manual review.
concepts:
  - CON-PFM-INT-003
actors:
  - ACT-PFM-006
  - ACT-PFM-021
  - ACT-PFM-020
  - ACT-PFM-017
surfaces:
  - job
  - api
  - console
preconditions: []
postconditions: []
permissions:
  - key: platform.integrations.read
    where_checked: api
    scope: tenant
  - key: platform.integrations.invoke
    where_checked: service
    scope: tenant
rules:
  - id: BR-CAP-PFM-INT-010-01
    proved_by: [ATS-PFM-INT-009-13, ATS-PFM-INT-009-15, ATS-PFM-INT-010-01, ATS-PFM-INT-010-11, TST-PFM-INT-380, TST-PFM-INT-481, TST-PFM-INT-545]
    statement: >-
      Unknown outcomes are investigated on the same connection using the execution identifier after thirty
      seconds, without resending the original operation.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/executions/reconciler.integration.spec.js#looks
      the execution up on the same connection with the contracts’ lookup shape, never repeating the authorize
    origin: 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S09'
  - id: BR-CAP-PFM-INT-010-02
    proved_by: [ATS-PFM-INT-009-13, ATS-PFM-INT-010-02, TST-PFM-INT-545]
    statement: >-
      A conclusive lookup settles and records the outcome once; inconclusive results retry after two minutes,
      ten minutes, one hour and six hours, then require attention with one administrator notice.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/executions/reconciler.integration.spec.js#backs
      off 2 min, 10 min, 1 h and 6 h while the lookup cannot tell
    origin: 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D4'
  - id: BR-CAP-PFM-INT-010-03
    proved_by: [ATS-PFM-INT-010-03, TST-PFM-INT-545]
    statement: >-
      Not-found lookup results retain uncertainty until the last scheduled lookup, when sensitive calls
      require a person and other calls fail.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/executions/reconciler.integration.spec.js#keeps
      looking through the fourth lookup, never failing a payment the provider may still show
    origin: 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D2'
  - id: BR-CAP-PFM-INT-010-04
    proved_by: [ATS-PFM-INT-009-13, ATS-PFM-INT-010-04, TST-PFM-INT-545, TST-PFM-INT-578]
    statement: >-
      Asynchronous calls default to twenty-four hours, shortened but never extended by a manifest budget;
      overdue accepted calls, lost attempts and lost queued work become unknown for later lookup and may still
      complete before settlement.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/unit/services/execution-timeouts.spec.ts#is 24 hours for an
      async-only capability whose manifest declares none
    origin: none
  - id: BR-CAP-PFM-INT-010-05
    proved_by: [ATS-PFM-INT-009-13, ATS-PFM-INT-010-05, ATS-PFM-INT-010-08, ATS-PFM-INT-010-10, ATS-PFM-INT-011-07, ATS-PFM-INT-015-08, TST-PFM-INT-542, TST-PFM-INT-545]
    statement: >-
      Every settlement path records one outcome and emits one applicable completion for an asynchronous or
      unanswered caller, while repeated settlements and completions emit nothing further.
    kind: invariant
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/executions/execution-settlement.integration.spec.js#is
      written once for two settlements that both read the execution running, the loser moving nothing
    origin: 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D6'
  - id: BR-CAP-PFM-INT-010-06
    proved_by: [ATS-PFM-INT-010-06, TST-PFM-INT-509]
    statement: >-
      Adapters report progress or valid completion only for their own running or accepted asynchronous
      executions; synchronous, foreign-connection and settled calls refuse the callback.
    kind: permission
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/adapter-callbacks/adapter-callbacks.integration.spec.js#refuses
      a sync execution, which only the gateway settles
    origin: 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S19'
  - id: BR-CAP-PFM-INT-010-07
    proved_by: [ATS-PFM-INT-006-10, ATS-PFM-INT-010-07, ATS-PFM-INT-010-09, TST-PFM-INT-458, TST-PFM-INT-577]
    statement: >-
      Unknown executions expose their next lookup and attention state, and the console follows that state
      rather than applies its own elapsed-time threshold.
    kind: policy
    enforced_at:
      - service
      - console
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/unit/services/execution-settlement-wire.spec.ts#gives the
      next lookup time of an unknown execution, not in needs attention
    origin: 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D8'
  - id: BR-CAP-PFM-INT-010-08
    proved_by: []
    statement: >-
      The reconciliation test clock admits only Platform outside production, limits adjustment to thirty days
      in either direction and leaves persisted record timestamps unshifted.
    kind: permission
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/unit/services/reconcile-test-clock.spec.ts#refuses the test
      clock in production, even from svc_platform
    origin: none
scenarios:
  - id: SC-CAP-PFM-INT-010-01
    given: A payment loses its answer after delivery at nine in the morning.
    when: Rhythm investigates the execution.
    then: Lookup finds the provider charge and settles without another authorization.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0039.spec.ts#INT-ACC-0039'
  - id: SC-CAP-PFM-INT-010-02
    given: An accepted test operation exceeds its one-minute asynchronous budget and offers no lookup capability.
    when: The reconciler detects its deadline.
    then: The operation reaches Needs Attention and sends an administrator notice.
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/e2e-adapters/gateway-dummy.adapters.spec.js#is reconciled
      by the next pass: the scripted adapter has no lookup, so it needs attention and the administrators are
      told
edge_cases: []
constraints: []
depends_on:
  - CAP-PFM-INT-009
related:
  - CAP-PFM-INT-011
  - CAP-PFM-INT-006
  - CAP-PFM-INT-015
journeys:
  - JNY-PFM-INT-004
open_questions: []
evidence:
  - >-
    services-platform source inventory: modules/integrations/services/executions/reconciler.ts,
    settle-execution.ts, timeouts.ts, reconcile-test-clock.ts,
    services/adapter-callbacks/adapter-callbacks.ts, services/events/execution-completed.ts;
    aws/logic/integrations-gateway.lambda.ts (schedules, alarms); rule-level automated test references;
    docs/integrations/README.md (The reconciler, Settling is one path); docs/milestones/INTG-M2-* (M2-D2,
    M2-D3, M2-D6, M2-D8).
  - 'react-console source inventory: lib/integrations/settling.ts; acceptance journey INT-ACC-0039.'
  - 'Operation coverage: completeIntegrationExecution, reportIntegrationExecutionProgress.'
  - 'Persistent record coverage: integration_executions, integration_execution_attempts, integration_events.'
  - 'End-to-end definition inventory: gateway-dummy.adapters.spec.js.'
controls: [TC-AVL-004, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-IAM-001, TC-IAM-006, TC-LOG-004, TC-LOG-005, TC-MON-001, TC-MON-002, TC-PI-001, TC-PI-002, TC-PI-004, TC-PI-005, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-VEN-001, TC-VEN-002, TC-VEN-003]
exercised_by: [FAS-PFM-INT-03-02, FAS-PFM-INT-03-03, FAS-PFM-INT-03-05]
suites: [TST-PFM-INT-380, TST-PFM-INT-458, TST-PFM-INT-481, TST-PFM-INT-509, TST-PFM-INT-542, TST-PFM-INT-545, TST-PFM-INT-577, TST-PFM-INT-578]
---
# Determine the result of uncertain or overdue calls

## Purpose

Rhythm establishes what happened to unfinished calls and escalates outcomes it cannot determine.

## How It Works

An unanswered operation stays visible as an execution with an uncertain result. Rhythm investigates through the same provider connection rather than starts the business operation again. Each lookup either establishes an outcome or schedules further investigation. Late asynchronous work is also brought into this process. Applications receive completion information when settlement warrants it. Staff can see the next automatic check while investigation continues. Work that cannot be settled becomes a manual operational problem. Contract exceptions and the manifest budget limit do not have identical recorded authority. The product should settle that budget interpretation and prove the completion path before relying on it for acceptance.

## Relationships

- Requires run provider operations safely through the gateway to supply the prerequisite configuration or operation.
- Connects with inspect calls and resolve operational problems through shared integration records.
- Connects with recognize integration problems and trace changes through shared integration records.
- Connects with route integration events to their application owners through shared integration records.
