paperclipai/paperclip · error

HTTP adapter missing url

Error message

HTTP adapter missing url

What it means

Config guard in the HTTP adapter's execute: the adapter config's `url` resolved to an empty string via asString(config.url, ""). The adapter has no endpoint to invoke, so it fails fast before building the request payload.

Solutions

  1. Set the url in the HTTP adapter configuration before executing.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/adapters/http/execute.ts:7 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18). Data as JSON: /api/errors/b31af4f40b086c69. Report an issue: GitHub.

Appendix: source

Thrown at server/src/adapters/http/execute.ts:8

import type { AdapterExecutionContext, AdapterExecutionResult } from "../types.js";
import { asString, asNumber, parseObject } from "../utils.js";
import { guardedHttpAdapterFetch } from "./remote-fetch.js";

export async function execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult> {
  const { config, runId, agent, context } = ctx;
  const url = asString(config.url, "");
  if (!url) throw new Error("HTTP adapter missing url");

  const method = asString(config.method, "POST");
  const timeoutMs = asNumber(config.timeoutMs, 0);
  const headers = parseObject(config.headers) as Record<string, string>;
  const payloadTemplate = parseObject(config.payloadTemplate);
  const body = {
    ...payloadTemplate,
    agentId: agent.id,
    runId,
    context,
    ...(ctx.runtimeTools ? { paperclipRuntimeTools: ctx.runtimeTools } : {}),
  };

  const controller = new AbortController();
  const timer = timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : null;

  try {
    // HTTP adapters have no child-process spawn event. Signal immediately

View on GitHub (pinned to 01ad858492)