quasarframework/quasar · warning

The queued task for "${task.diffName}" failed

Error message

The queued task for "${task.diffName}" failed

What it means

The dev server's internal task queue runs deferred tasks (registered while the server was busy) against the latest quasar config. If a queued task function throws or its promise rejects, the error is logged to console and this warning is emitted, so one bad task doesn't block the remaining queued tasks or future ones.

Source

Thrown at app-vite/lib/app-devserver.js:297

      // wait for any pending task to settle before
      // running the next queued one
      if (this.#pendingTask !== null) {
        await this.#pendingTask.catch(() => {})
        // a sibling executor may have run (and drained)
        // the queue in the meantime, so re-check everything
        continue
      }

      const task = this.#watcherQueue.shift()
      if (!this.#diff(task.diffName, false)) {
        // a failed task must not stop the executor,
        // otherwise the still queued tasks would never run
        // (and neither would any future ones)
        try {
          await this.#runTask(task.fn(this.#latestQuasarConf, task.diffName))
        } catch (err) {
          console.error(err)
          warn(`The queued task for "${task.diffName}" failed`)
        }
      }
    }
  }

  reloadClient() {
    this.clientNeedsReload = false
    this.clientServer?.ws.send({ type: 'full-reload' })
  }

  async rebootClient(newServer) {
    this.clientNeedsReload = false

    if (this.clientServer !== null) {
      const watcher = this.clientServer
      this.clientServer = null
      await watcher.close()
    }

View on GitHub (pinned to 4841521b5f)

Solutions

  1. Look at the `err` printed above the warning (console.error(err)) to identify the failing task
  2. Fix the error in the hook/extension that queued the task (often build.afterDev or a plugin callback)
  3. Re-save quasar.config.js to retrigger the task after fixing
  4. Temporarily comment out recently added config hooks to isolate the failing one

Example fix

// before (quasar.config.js)
build: {
  afterDev(ctx) { missingFunction() }
}
// after
build: {
  afterDev(ctx) { try { definedFunction() } catch (e) { console.error(e) } }
}
Defensive patterns

Strategy: try-catch

Validate before calling

// guard queued hooks before they run
if (typeof build.afterDev === 'function') { /* safe to queue */ }

Try / catch

// in your queued task / hook
try {
  await runAgainstConf(quasarConf)
} catch (err) {
  console.error('Task failed against new quasar config:', err)
}

Prevention

When it happens

Trigger: A task queued via devServer.queue() during dev throws — e.g. a build.afterDev/style hook, a plugin callback, or framework extension task that fails against the new quasar config after a quasar.config change.

Common situations: Editing quasar.config.js while dev server runs and a watcher/extension task fails against the new config; a third-party Quasar extension's queued task incompatible with the changed config; syntax error in a custom afterDev hook.

Related errors


AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30). Data as JSON: /api/errors/e9f1497a8d155116. Report an issue: GitHub.