sveltejs/kit · error

Skipping ${__.name}(${payload})

Error message

Skipping ${__.name}(${payload})

What it means

Inside a `requested()` batch's async iteration, a remote function failed while its argument was being parsed or validated. SvelteKit records the failure in the query cache (so retries with the same payload reject) and throws this wrapper error naming the function and its serialized payload, with the original error as `cause`. It surfaces as an unhandled rejection because `race_all` swallows the rejection by skipping that entry — check the cause for the real problem.

Source

Thrown at packages/kit/src/runtime/app/server/remote/requested.js:204

					record_failure(payload, error);
					continue;
				}
			}
		},
		async *[Symbol.asyncIterator]() {
			yield* race_all(selected, async (payload) => {
				consume(payload);
				try {
					const parsed = parse_remote_arg(payload);
					const validated = await __.validate(parsed);
					return {
						arg: validated,
						query: __.bind(payload, validated),
						ignore: create_ignore(payload)
					};
				} catch (error) {
					record_failure(payload, error);
					throw new Error(`Skipping ${__.name}(${payload})`, { cause: error });
				}
			});
		},
		async refreshAll() {
			if (__.type === 'query_live') {
				throw new Error('refreshAll() is invalid for live queries. Use reconnectAll() instead.');
			}

			for await (const { query } of result) {
				void (/** @type {RemoteQuery<Output>} */ (query).refresh());
			}
		},
		async reconnectAll() {
			if (__.type !== 'query_live') {
				throw new Error('reconnectAll() is invalid for regular queries. Use refreshAll() instead.');
			}

			for await (const { query } of result) {

View on GitHub (pinned to 03f1687fe6)

Solutions

  1. Inspect `error.cause` to find the actual parse/validation failure.
  2. Fix the client so it only sends arguments matching the current validator schema.
  3. Guard the remote function's input with a tolerant schema or a 'unchecked' validator if the raw arg is intended.
  4. Version or shape-check payloads on the client before enqueueing them into requested().

Example fix

// before: iterating a batch whose payload no longer validates
for await (const { arg, query } of requested(searchQuery, 10)) { ... }
// after: validate the shape of arguments before queueing them
const args = items.filter((i) => schema.safeParse(i).success);
for await (const { arg, query } of requested(searchQuery.bind(args), 10)) { ... }
Defensive patterns

Strategy: try-catch

Validate before calling

const ok = items.every((i) => schema.safeParse(i).success); // before calling requested()

Type guard

function isValidArg(a) { return schema['~standard'].validate; } // or use safeParse success as the guard

Try / catch

try {
  for await (const { arg, query } of requested(myQuery, 10)) {
    void query.refresh();
  }
} catch (e) {
  console.error('batch item skipped:', e.cause ?? e);
}

Prevention

When it happens

Trigger: Iterating `requested(myQuery, ...)` with `for await...of` when a queued payload fails `parse_remote_arg` or async `__.validate` (e.g. a Standard Schema validator throws `ValidationError` on bad input), while racing all payloads via `race_all`.

Common situations: A user mutated/corrupted the serialized argument; a validator schema was tightened between deploy and a client with cached payloads; a client sends payloads an updated server no longer accepts.

Related errors


AI-assisted analysis of sveltejs/kit@03f1687fe6 (2026-09-02). Data as JSON: /api/errors/e1eca1241aa8d8ab. Report an issue: GitHub.