NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
neograph::program::ProgramProviderForkResendRefusedError Class Referencefinal

A fork reached a provider call its source already journaled at the same position, and could neither adopt the source's record nor show that the call differs, so sending it would likely pay for it again (#543). More...

#include <sqlite_provider_call_broker.h>

Inheritance diagram for neograph::program::ProgramProviderForkResendRefusedError:
[legend]
Collaboration diagram for neograph::program::ProgramProviderForkResendRefusedError:
[legend]

Public Types

enum class  Reason : std::uint8_t { Unverifiable , EncoderDiffers , DeploymentDiffers }
 

Public Member Functions

const std::string & call_id () const noexcept
 The fork's logical call id (SQLiteProgramProviderCallJournal::logical_call_id).
 
const std::string & source_call_id () const noexcept
 The source's logical call id of the record that could not be adopted.
 

Detailed Description

A fork reached a provider call its source already journaled at the same position, and could neither adopt the source's record nor show that the call differs, so sending it would likely pay for it again (#543).

It is raised before anything is sent, and nothing is journaled. A host that accepts the second payment sets RuntimeConfig::fork_may_resend_provider_calls; the fork then sends the call and reports P_FORK_PROVIDER_CALL_RESENT in ProgramHandle::notices(). Inside a Core node it is NG.ConfigError: it is never retried and never routed.

Definition at line 65 of file sqlite_provider_call_broker.h.

Member Enumeration Documentation

◆ Reason

Enumerator
Unverifiable 

The source's record predates the content identity (it was written by 0.16.0 or earlier), and its dispatch digest differs from this call's: the call may be the same under another descriptor policy, or a different one.

EncoderDiffers 

The source's record was written by an encoder other than this build's and its content differs: the request may have changed, or only its encoding.

DeploymentDiffers 

The content is the same, but the source journaled the call under another provider deployment.

Definition at line 69 of file sqlite_provider_call_broker.h.


The documentation for this class was generated from the following file: