langgenius/dify · error · Error

Cannot start the E2E API server because ${apiLoopbackHost}:$

Error message

Cannot start the E2E API server because ${apiLoopbackHost}:${apiPort} is already in use.${listenerMessage}

What it means

Error "Cannot start the E2E API server because ${apiLoopbackHost}:${apiPort} is already in use.${listenerMessage}" thrown in langgenius/dify.

Source

Thrown at e2e/scripts/setup.ts:315

  await runForegroundProcess({
    command: 'pnpm',
    args: ['run', 'start'],
    cwd: webDir,
    env: {
      ...e2eWebEnvOverrides,
      HOSTNAME: '127.0.0.1',
      PORT: '3000',
    },
  })
}

export const startApi = async () => {
  if (await isTcpPortReachable(apiLoopbackHost, apiPort)) {
    const listenerDescription = await getTcpPortListenerDescription(apiPort)
    const listenerMessage = listenerDescription ? `\n\nPort listener:\n${listenerDescription}` : ''

    throw new Error(
      `Cannot start the E2E API server because ${apiLoopbackHost}:${apiPort} is already in use.${listenerMessage}`,
    )
  }

  const env = await getApiEnvironment()

  await runCommandOrThrow({
    command: 'uv',
    args: ['run', '--project', '.', '--no-sync', 'flask', 'upgrade-db'],
    cwd: apiDir,
    env,
  })

  await runForegroundProcess({
    command: 'uv',
    args: [
      'run',
      '--project',

View on GitHub (pinned to ef8544b173)

When it happens

Trigger: Thrown at e2e/scripts/setup.ts:315 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of langgenius/dify@ef8544b173 (2026-08-12). Data as JSON: /api/errors/b60224314bd0c5c4. Report an issue: GitHub.