Skip to content

Improve observability and diagnostics for "Project fingerprint byte budget exceeded" errors #504

Description

@laurentftech

Description

During a recent project setup, we encountered a blocking error during the npx openlore analyze phase:
✗ Analysis failed: Project fingerprint byte budget exceeded (1073741824)

While the budget exists to prevent the analyzer from attempting to index massive amounts of data, the current error reporting is "opaque." It informs the user that a limit has been reached but provides zero visibility into which files or directories are causing the overflow.

In our case, the budget was exceeded by several large binary files (.lance, .sqlite) located in a temporary test directory (/tmp/vecheck_data) and some documentation folders. Because the tool didn't identify the culprits, we had to spend significant time manually scanning the filesystem using PowerShell scripts to find the heavy folders and then trial-and-error adding them to excludePatterns.

The "Pain Points"

  1. Cryptic Error Message: An error mentioning a "byte budget" without context is confusing for a user who may not know if this is a RAM limit, a disk limit, or a software safety cap.
  2. Lack of Offender Listing: The tool crashes immediately upon hitting the limit. It doesn't report the top contributors to that budget.
  3. Doctor Tool Gap: openlore doctor focuses on infrastructure (connectivity, versions) and doesn't detect or help resolve this kind of logical analysis failure.
  4. Incomplete Default Skips: Modern data store formats (like LanceDB's .lance or .parquet) are not in the SKIP_EXTENSIONS list in file-walker.js, allowing them to enter the fingerprinting process.

Proposed Improvements

1. Explicit Error Messaging

Change the error message to be more actionable.

  • Current: Project fingerprint byte budget exceeded (1073741824)
  • Proposed: Analysis failed: The total volume of files to be indexed exceeds the safety budget of 1 GiB. Please exclude large binary data directories (e.g., vector stores, logs, datasets) in your config using excludePatterns.

2. Automatic "Culprit" Reporting

When the budget is exceeded, the analyzer should print a summary of the largest directories/files encountered before the crash.

  • Suggested Output:
    Budget exceeded. Top contributors to the fingerprint budget:
    - /tmp/vecheck_data: 3.7 GB
    - /docs/graph_vectors: 738 MB
    Please add these paths to your excludePatterns.

3. Update SKIP_EXTENSIONS

Expand the default ignore list in file-walker.js to include common modern binary data formats (e.g., .lance, .parquet, .arrow, etc.) to prevent them from accidentally bloating the fingerprint.

Environment

  • OpenLore version: 3.2.0
  • OS: Windows
  • Trigger: Running npx openlore analyze on a repository containing local vector store data (~4.7 GB of .lance and .sqlite files).

Activity

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions