Skip to content

Error reference ​

Usage: experiment-framework <project-name> [--control] ​

The project argument is missing.

bash
npx @sogody/experiment-framework my-experiment
npx @sogody/experiment-framework my-experiment --control

Failed to load experiment.config.js ​

Run the command from the generated project root and check that experiment.config.js exports a default object with runtime.globalObject.

No variation entry points found ​

The build expects at least one src/js/*/index.jsx entry point. Restore src/js/v1/index.jsx, add a valid named entry such as src/js/control/index.jsx, or run from the correct directory.

-eN is out of range ​

The zero-based watch index is larger than the number of discovered variation folders. Numeric vN folders are ordered first, then named folders such as control. For v2, use:

bash
pnpm start 1

Build aborted - fix lint errors before bundling ​

Production builds run a read-only Biome check. Run:

bash
pnpm format
pnpm lint

Fix remaining errors, including unused variables and console calls.

IIFE bundle not found ​

Playwright loads dist/v1-index.jsx. Run E2E through:

bash
pnpm test:e2e

That command builds before starting Playwright.

injectTargetElement: unsupported selector ​

Generated E2E helpers can create only a simple class target such as .target-selector. If selectors.primary is complex, ensure the real page contains it or customize injectTargetElement() for the selector shape.

Unknown market ​

e2e/config.js#getUrl() could not find the requested country code in urlsConfig.markets. Use a configured country code, not only the parent group code.

Bundle did not register window.<globalObject>["<package-name>"] ​

pnpm live injected the bundle but window[globalObject][packageName] was not set within the wait window. Common causes:

  • The variation entry point does not call runScript
  • package.json name does not match the registered key
  • experiment.config.js runtime.globalObject does not match the runtime namespace
  • The bundle threw before registration completed

Fix the variation entry point and confirm the built bundle executes without errors in the browser console.

No target matched selectors ​

Live injection could not match selectors.primary or a fallback. Injection still runs if the bundle registers on window[globalObject][packageName]. Check the target URL, page state, and selector chain when the overlay needs mount-point information.

AGENTS.md has no valid framework-managed block. ​

exp-init-agents found an existing AGENTS.md without one valid pair of framework markers. It left the file unchanged. Review the file before replacing it:

bash
pnpm exec exp-init-agents --force

CLAUDE.md already exists. ​

exp-init-claude found an existing CLAUDE.md and left it unchanged. To intentionally replace the file, run:

bash
pnpm exec exp-init-claude --force

Invalid project metadata for AI initialization ​

Run AI initialization commands from a generated experiment project root. They can report:

  • package.json not found. Run this command from a generated experiment project root.
  • package.json is not valid JSON.
  • package.json must contain a string "name" field.
  • No experiment.config.js or src/config.js found. Run this command from a generated experiment project root.

Restore valid package metadata and experiment configuration.

Unknown option "<option>". Supported option: --force ​

The package-owned initialization binaries accept only --force:

bash
pnpm exec exp-init-agents --force

Chromium executable is missing ​

Install the browser used by live injection and E2E:

bash
pnpm dlx playwright install chromium

Clipboard does not update ​

macOS and Windows use built-in clipboard commands. Linux requires xclip. The watcher still builds if clipboard copy fails, so copy dist/vN-index.jsx manually or install xclip.

Internal tool - Samsung / Sogody experimentation team

Help improve the frameworkShare an idea or friction you encountered.Share framework feedback(opens in a new tab)