Not sure why this is throwing a "multiple paginated queries" error
export const getJobsCountWithQueueAndStatus = internalQuery({
args: {
queue: v.string(),
status: v.union(
v.literal('pending'),
v.literal('processing'),
v.literal('completed'),
v.literal('failed'),
v.literal('cancelled'),
),
},
handler: async (ctx, { queue, status }) => {
let continueCursor = null;
let isDone = false;
let page;
const pageSize = 5;
let jobsCount = 0;
while (!isDone) {
console.log(queue, status);
({ continueCursor, isDone, page } = await ctx.db
.query('jobs')
.withIndex('by_queue_status', (q) => q.eq('queue', queue).eq('status', status))
.paginate({
cursor: continueCursor,
numItems: pageSize,
}));
jobsCount += page.length;
}
return jobsCount;
},
});export const getJobsCountWithQueueAndStatus = internalQuery({
args: {
queue: v.string(),
status: v.union(
v.literal('pending'),
v.literal('processing'),
v.literal('completed'),
v.literal('failed'),
v.literal('cancelled'),
),
},
handler: async (ctx, { queue, status }) => {
let continueCursor = null;
let isDone = false;
let page;
const pageSize = 5;
let jobsCount = 0;
while (!isDone) {
console.log(queue, status);
({ continueCursor, isDone, page } = await ctx.db
.query('jobs')
.withIndex('by_queue_status', (q) => q.eq('queue', queue).eq('status', status))
.paginate({
cursor: continueCursor,
numItems: pageSize,
}));
jobsCount += page.length;
}
return jobsCount;
},
});Schema:
jobs: defineTable({
args: v.any(),
attempt: v.number(),
dependencies: v.optional(v.array(v.id('jobs'))),
error: v.optional(
v.object({
attempt: v.number(),
message: v.string(),
stack: v.optional(v.string()),
timestamp: v.number(),
}),
),
fnArgs: v.any(),
fnHandle: v.string(),
fnName: v.string(),
fnType: v.union(v.literal('action'), v.literal('mutation'), v.literal('query')),
maxAttempts: v.number(),
metadata: v.optional(v.any()),
nextJobId: v.optional(v.id('jobs')),
priority: v.number(),
progress: v.optional(
v.object({
current: v.number(),
status: v.string(),
total: v.number(),
}),
),
queue: v.string(),
resourceRequirements: v.optional(
v.object({
cpu: v.number(),
memory: v.number(),
timeout: v.number(),
}),
),
result: v.optional(v.any()),
status: v.union(
v.literal('pending'),
v.literal('processing'),
v.literal('completed'),
v.literal('failed'),
v.literal('cancelled'),
),
timing: v.object({
completedAt: v.optional(v.number()),
createdAt: v.number(),
duration: v.optional(v.number()),
processingTime: v.optional(v.number()),
queueTime: v.optional(v.number()),
startedAt: v.optional(v.number()),
}),
}).index('by_queue_status', ['queue', 'status']), jobs: defineTable({
args: v.any(),
attempt: v.number(),
dependencies: v.optional(v.array(v.id('jobs'))),
error: v.optional(
v.object({
attempt: v.number(),
message: v.string(),
stack: v.optional(v.string()),
timestamp: v.number(),
}),
),
fnArgs: v.any(),
fnHandle: v.string(),
fnName: v.string(),
fnType: v.union(v.literal('action'), v.literal('mutation'), v.literal('query')),
maxAttempts: v.number(),
metadata: v.optional(v.any()),
nextJobId: v.optional(v.id('jobs')),
priority: v.number(),
progress: v.optional(
v.object({
current: v.number(),
status: v.string(),
total: v.number(),
}),
),
queue: v.string(),
resourceRequirements: v.optional(
v.object({
cpu: v.number(),
memory: v.number(),
timeout: v.number(),
}),
),
result: v.optional(v.any()),
status: v.union(
v.literal('pending'),
v.literal('processing'),
v.literal('completed'),
v.literal('failed'),
v.literal('cancelled'),
),
timing: v.object({
completedAt: v.optional(v.number()),
createdAt: v.number(),
duration: v.optional(v.number()),
processingTime: v.optional(v.number()),
queueTime: v.optional(v.number()),
startedAt: v.optional(v.number()),
}),
}).index('by_queue_status', ['queue', 'status']),Error:
Error: [CONVEX Q(jobs/jobQueue:getJobsCountWithQueueAndStatus)] [Request ID: e735d416db91c2a6] Server Error
Uncaught Error: This query or mutation function ran multiple paginated queries. Convex only supports a single paginated query in each function.
at async handler (../../convex/jobs/jobQueue.ts:54:18)
Called by clientError: [CONVEX Q(jobs/jobQueue:getJobsCountWithQueueAndStatus)] [Request ID: e735d416db91c2a6] Server Error
Uncaught Error: This query or mutation function ran multiple paginated queries. Convex only supports a single paginated query in each function.
at async handler (../../convex/jobs/jobQueue.ts:54:18)
Called by clientCalling once with arguments:
{
queue: "instagramApi",
status: "completed",
}{
queue: "instagramApi",
status: "completed",
}