Skip to content

Wiki projection fails the whole run when folders differ only by case #1787

Closed

Description

@phernandez

Problem

plan_wiki_projection raises ValueError: Wiki projected scopes must be unique when compared as portable paths when two source folders differ only by letter case, for example marketing/Teams and marketing/teams (indexing/wiki_projector.py:425 and :446).

The error fails the whole projection run. Every later run fails the same way, so that project's wiki stops updating with no message to the user.

Evidence

  • Basic Memory Cloud production: 69 failures since 10-11 (Logfire issue #2636). It currently recurs every day on one workspace.
  • An earlier occurrence on another workspace was customers/CPC against customers/cpc.

Expected

A case-only folder collision must not stop the rest of the project's wiki. Options:

  • project both folders into distinct portable scopes, for example with a stable suffix;
  • or skip the colliding scope and record a diagnostic the user can see and fix.

The portable-path uniqueness rule stays, because it protects case-insensitive sync targets. What changes is that one collision no longer fails the whole run.

Acceptance

  • A test with two folders that differ only by case: projection completes for the other scopes, and the collision is reported, not raised.

Activity

  1. added
    bugSomething isn't working
    cost-review-2026-10October 2026 COGS review: cost leaks, heavy tenants, and production error triage
    on Oct 20, 2026
  2. claude commented on Oct 20, 2026

    @claude
    Contributor

    Claude finished @phernandez's task in 15s —— View job


    Triage

    • Type: Bug
    • Priority: High. One case-only folder collision (marketing/Teams vs marketing/teams) fails the whole wiki projection run. That workspace's wiki then stops updating on every later run, with no user-visible message. Production has 69 failures since 10-11 (Logfire #2636), and it recurs daily on one workspace.
    • Component: Cloud functionality, in the wiki projection indexing code (src/basic_memory/indexing/wiki_projector.py)
    • Complexity: Medium. The portable-path uniqueness check stays. The work is deciding how a collision is handled (a stable suffix per scope, or skip the scope and record a diagnostic), then surfacing it to the user.

    Notes

    • I found the same uniqueness check raising at three sites in wiki_projector.py (lines ~410, 425 and 446). The fix should cover all three, since the issue only cites two.
    • I searched open and closed issues for a duplicate and found none.
    • The issue already gives reproduction evidence and acceptance criteria, so I'm not asking for more.
    • Per the triage scope I made no code changes. I only set labels.
  3. added a commit that references this issue on Oct 23, 2026
    0f2cfed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcloudBasic Memory Cloudcost-review-2026-10October 2026 COGS review: cost leaks, heavy tenants, and production error triage

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions