Compiler ErrorsAI Memory & Providers

AI Memory & Providers

Errors from the memories: block (vector memory) and the providers: block (model backends).

13 error codes in this section.

AI Memory

VERR_MEMORY_MISSING_SOURCE_EVENTS

Memory missing source_events. A memories: entry has no source_events list — the compiler doesn’t know which events populate this memory.

Impact: Compilation aborts; the memory would never be written to.

✗ Won't compile
memories:
  customer_memory:
    partition_by: user_id
✓ Fixed
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
    partition_by: user_id

VERR_MEMORY_EVENT_NOT_FOUND

Memory references unknown event. A memory’s source_events entry doesn’t match any key under the top-level events: block.

Impact: Compilation aborts — the memory would listen for an event that’s never emitted.

✗ Won't compile
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVD]   # typo
✓ Fixed
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]

VERR_MEMORY_MISSING_PARTITION_BY

Memory missing partition_by. A memories: entry has no partition_by field — the compiler doesn’t know which payload field scopes memories to a subject (e.g. per user, per account).

Impact: Compilation aborts; memory retrieval would have no way to scope results to the right subject.

✗ Won't compile
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
✓ Fixed
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
    partition_by: user_id

VERR_MEMORY_PARTITION_FIELD_MISSING

partition_by field not on event payload. The field named in partition_by doesn’t exist in the payload of one of the memory’s source_events.

Impact: Compilation aborts — the memory can’t be partitioned by a field the event doesn’t carry.

✗ Won't compile
events:
  SUPPORT_TICKET_RESOLVED:
    payload:
      ticket_id: string
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
    partition_by: user_id   # not in this event's payload
✓ Fixed
events:
  SUPPORT_TICKET_RESOLVED:
    payload:
      ticket_id: string
      user_id: string
memories:
  customer_memory:
    partition_by: user_id

VERR_MEMORY_MISSING_EMBEDDING

Memory missing embedding configuration. A memories: entry has no embedding: block, or the block is present but declares neither provider nor executor.

Impact: Compilation aborts; the memory has no model to generate vectors for semantic retrieval.

✗ Won't compile
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
    partition_by: user_id
    # embedding missing
✓ Fixed
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
    partition_by: user_id
    embedding:
      provider: embeddings
    content: "Ticket {{ event.payload.ticket_id }} resolved"

VERR_MEMORY_MISSING_CONTENT

Memory missing content template. A memories: entry has no content field — the compiler doesn’t know what text to embed and store for each source event.

Impact: Compilation aborts; there’s nothing to generate an embedding from.

✗ Won't compile
memories:
  customer_memory:
    embedding:
      provider: embeddings
    # content missing
✓ Fixed
memories:
  customer_memory:
    embedding:
      provider: embeddings
    content: "Ticket {{ event.payload.ticket_id }} resolved for {{ event.entity_id }}"

VERR_MEMORY_UNKNOWN_VARIABLE

Memory content references unknown variable. A {{ variable }} in a memory’s content template isn’t event.type, event.entity_id, event.ts, or an event.<field> / event.payload.<field> that exists on one of its source_events.

Impact: Compilation aborts — the placeholder could never resolve to a real value.

✗ Won't compile
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
    content: "{{ event.payload.ticket_number }}"   # not on this event's payload
✓ Fixed
memories:
  customer_memory:
    source_events: [SUPPORT_TICKET_RESOLVED]
    content: "{{ event.payload.ticket_id }}"

AI Providers

VERR_PROVIDER_DUPLICATE

Duplicate provider name. Two providers: entries share the same name. Since providers: parses as a YAML map, this is a defensive check — a hand-merged or generated spec is the most likely cause.

Impact: Compilation aborts to avoid ambiguous provider resolution.

✗ Won't compile
# Two spec fragments merged into one providers: map
# both declaring 'reasoning'
✓ Fixed
# Ensure provider names are unique across every merged DSL fragment.

VERR_PROVIDER_MISSING_EXECUTOR

Provider missing executor. A providers: entry has no executor field — the compiler doesn’t know which model backend implementation to use.

Impact: Compilation aborts; no further checks run on this provider until executor is set.

✗ Won't compile
providers:
  reasoning:
    model: gpt-4o
✓ Fixed
providers:
  reasoning:
    executor: openai
    model: gpt-4o

VERR_PROVIDER_UNKNOWN_EXECUTOR

Provider references unknown executor. A provider’s executor value isn’t one of the known executors: mock, openai, anthropic, or ollama.

Impact: Compilation aborts — the runtime has no client implementation for an unrecognized executor.

✗ Won't compile
providers:
  reasoning:
    executor: azure_openai   # not a known executor
✓ Fixed
providers:
  reasoning:
    executor: openai

VERR_PROVIDER_MISSING_MODEL

Provider missing model. A provider’s executor requires a model (openai, anthropic, ollama all do; mock does not), but model is blank.

Impact: Compilation aborts — the runtime has no model identifier to send in the API call.

✗ Won't compile
providers:
  reasoning:
    executor: openai
    # model missing
✓ Fixed
providers:
  reasoning:
    executor: openai
    model: gpt-4o

VERR_PROVIDER_INVALID_TIMEOUT

Provider has invalid timeout. A provider’s timeout value isn’t a recognized duration format — a bare integer (milliseconds), or a number suffixed with ms, s, or m.

Impact: Compilation aborts — the runtime can’t parse the timeout into a duration.

✗ Won't compile
providers:
  reasoning:
    executor: openai
    model: gpt-4o
    timeout: 30 seconds   # not a valid duration format
✓ Fixed
providers:
  reasoning:
    executor: openai
    model: gpt-4o
    timeout: 30s

VERR_PROVIDER_NOT_FOUND

Reference to unknown provider. A decision’s provider field, or a memory’s embedding.provider field, names a provider that doesn’t exist under the top-level providers: block.

Impact: Compilation aborts — the decision or memory has nothing to send its model call to.

✗ Won't compile
decisions:
  moderate_comment:
    provider: reasonin   # typo — not declared under providers:
✓ Fixed
decisions:
  moderate_comment:
    provider: reasoning   # matches providers.reasoning