molecule-ai-workspace-templ.../known-issues.md
2026-04-21 10:54:40 +00:00

5.2 KiB

Known Issues — langgraph Workspace Template

This document tracks unresolved and partially-resolved issues that are known to occur when running this workspace template. Each entry includes the symptom, affected versions, workaround, and (where applicable) a link to the upstream or internal tracker.


1. langgraph Version Drift Between Template and Platform

Severity: High Affects: All template versions prior to aligning langgraph pin in requirements.txt with the platform's bundled langgraph runtime.

Symptom: The adapter initialises the langgraph StateGraph and immediately crashes with:

AttributeError: module 'langgraph' has no attribute 'prebuilt'

or, in newer platform releases that bundle langgraph 0.4+:

ValueError: Unexpected keyword argument 'store' — this graph does not use checkpointers

Root cause: The template pins langgraph>=0.2.0,<0.3.0 but the platform runtime ships with langgraph 0.4.x. The graph API (constructor args, checkpointer vs store, prebuilt agent) changed between 0.2 and 0.4.

Workaround: Edit requirements.txt to match the platform's bundled langgraph version:

# Query the platform for its runtime version
curl -s https://platform.molecule.ai/api/v1/workspaces/{id}/runtime-info \
  -H "Authorization: Bearer $MOLECULE_TOKEN" | jq '.langgraph_version'

Then update requirements.txt:

langgraph==<reported_version>

Fix: The template maintainer will update the pin in every template release that aligns with a platform upgrade. Always check the release notes before updating the platform.


2. system-prompt.md Gets Reset on Template Update

Severity: Medium Affects: Users who customise system-prompt.md directly in the workspace.

Symptom: After pulling a new template version (e.g. git pull), the agent's behaviour changes unexpectedly even though no config.yaml changes were made. On inspection, system-prompt.md has been overwritten with the template version.

Root cause: system-prompt.md is a template-managed file. When the platform rebuilds the workspace container it copies the file from the registered template tag, overwriting any local customisations.

Workaround — Option A (recommended): Do not edit system-prompt.md directly. Instead, inject custom instructions via the MOLECULE_SYSTEM_PROMPT_OVERRIDE environment variable. The adapter prepends this value to the loaded system-prompt.md at startup:

export MOLECULE_SYSTEM_PROMPT_OVERRIDE="You are a helpful assistant with the following additional context: ..."

Workaround — Option B: Fork the template and pin to a specific tag. Apply your customisations as patches on top of that tag.

Fix: A future platform release will support a system_prompt_overlay field in config.yaml so customisation survives template updates (tracked in internal ticket MOL-4821).


3. HEARTBEAT Not Wired in Some langgraph Versions

Severity: Medium Affects: Template versions ≤ v1.0.3 running against langgraph < 0.3.8.

Symptom: The platform's activity dashboard shows the workspace as "silent" even though the agent is actively processing tasks. No HEARTBEAT events arrive at the platform.

The adapter log shows:

HEARTBEAT emitter disabled: no 'interrupt' channel in graph channels

Root cause: In langgraph < 0.3.8, the mechanism to emit out-of-band events from within a graph step required using a dedicated "heartbeat" channel on the StateGraph. The adapter code looked for this channel but did not create it automatically. In 0.3.8+ the preferred approach is to use Interrupts.

Workaround: Add the heartbeat channel explicitly when constructing the graph in adapter.py:

builder = StateGraph(AgentState, channels=["heartbeat"])
# ...
graph = builder.compile(interrupt_before=["heartbeat_node"])

Or upgrade langgraph to ≥ 0.3.8 where the adapter's auto-wiring logic handles this.

Fix: Merged in template v1.0.4. Upgrade to v1.0.4 or later to resolve.


4. config.yaml Schema Mismatch After Platform Upgrade

Severity: High Affects: Any workspace that pins schema_version below the minimum supported by the platform after a platform upgrade.

Symptom: The adapter fails to start with:

ValidationError: config schema version '1.0' is not supported.
Minimum supported version: '1.1'. Please update config.yaml.

Root cause: The Molecule platform increments the minimum supported schema_version when it makes backward-incompatible changes to the config format. Workspaces that pin an older schema version will fail validation.

Workaround: Immediately after a platform upgrade, edit config.yaml and update the schema_version field to the new minimum reported in the platform's release notes:

schema_version: "1.1"   # change from "1.0" to "1.1"

Prevention: The release checklist in CLAUDE.md includes a step to review the platform's minimum schema version before tagging a new template release. Always test against the target platform version before releasing.

Fix: Once schema_version is updated, the adapter starts normally. No adapter code changes are required for schema-only bumps.