Skip to main content

How to fix Meshy API 429 and rate limit errors

Why rate limits exist; request vs queue limit; backoff; concurrency planning; retries; when to upgrade

If your integration is hitting 429, RateLimitExceeded, or NoMoreConcurrentTasks errors when calling the Meshy API, this guide explains why these limits exist and how to design your integration to work within them.

Why rate limits exist

Meshy's API sits in front of shared GPU compute used to generate 3D models, textures, and related assets. Rate limits and concurrency caps protect that shared infrastructure so that generation quality and turnaround time stay consistent for every user on the platform. Every account, based on its current plan, has a maximum number of requests it can make in a given time window and a maximum number of generation tasks it can have running (queued or in progress) at once.

Request limit vs. queue/concurrency limit

There are two distinct limits, and they fail differently:

  • Request rate limit (429 / RateLimitExceeded): this caps how many API calls (e.g. task creation, status polling) you can make per minute. Exceeding it means you are calling the API too frequently, independent of how many tasks are actually running.

  • Concurrency / queue limit (NoMoreConcurrentTasks): this caps how many generation tasks you can have queued or processing at the same time. Exceeding it means you already have the maximum number of active tasks and need to wait for one to finish before submitting another.

Check your plan's current request and concurrency limits in your Meshy dashboard, since these can vary by plan tier.

Backoff strategy for 429 errors

When you receive a 429 or RateLimitExceeded response, do not immediately retry the same request. Instead:

  • Use exponential backoff: wait a short interval, then double it on each subsequent failure, up to a reasonable maximum.

  • Add jitter (a small random offset) to your backoff interval so multiple workers in your system don't all retry at the same instant.

  • Respect any Retry-After or rate-limit headers returned in the response, if present, rather than guessing a wait time.

  • Cap the number of retries per request so a persistent failure doesn't loop indefinitely.

Planning around concurrency limits

A NoMoreConcurrentTasks error means you're already at your account's active task ceiling. To avoid hitting it in production:

  • Maintain a local queue or job scheduler in your own application that only submits a new generation task once a previous one completes or your active count drops below the limit.

  • Poll task status (or use webhooks, if supported in your workflow) to know when a slot frees up, rather than submitting speculatively.

  • Batch and throttle bulk generation jobs instead of firing all requests at once — this smooths out both your request rate and your concurrent task count.

  • Build in monitoring/alerting on your side so a spike in 429/NoMoreConcurrentTasks errors is visible before it affects your users.

Retrying failed or unsatisfactory generations

The Meshy API does not currently support a built-in "retry" of an existing generation for individual or studio plans — if a result doesn't meet your expectations, you submit a new generation request, which consumes credits as normal. When your automated pipeline handles transient errors (like a 429), make sure your retry logic is only re-sending the original request after backing off, not creating duplicate generation tasks each time.

When to consider upgrading your plan

If you've implemented backoff and concurrency-aware queuing and you're still consistently hitting rate or concurrency limits, that's usually a sign your integration's throughput needs have outgrown your current plan's limits. Check your dashboard for your current plan's request and concurrency allowances, and consider upgrading or contacting the Meshy sales team about enterprise-level API access if you need sustained higher throughput.

FAQ

1. What does a 429 or RateLimitExceeded error mean?

It means you've exceeded the number of API requests allowed within a given time window for your plan. Slow down your request rate and use exponential backoff before retrying.

2. What does NoMoreConcurrentTasks mean?

It means you already have the maximum number of generation tasks queued or in progress for your account. Wait for an existing task to finish, or reduce how many tasks you submit at once, before submitting more.

3. How do I know my account's rate and concurrency limits?

Check your Meshy dashboard for the limits associated with your current plan, as these can differ between plan tiers.

4. Does Meshy support automatic retries for generation tasks?

No, not for individual or studio plans — a failed or unsatisfactory generation must be resubmitted as a new request, which uses credits normally. Enterprise customers should contact sales about retry functionality.

5. What's the best way to avoid hitting these errors in a production pipeline?

Implement a local queue that throttles submissions to stay under your concurrency limit, add exponential backoff with jitter for any 429 responses, and monitor error rates so you can react before they impact your users.

6. When should I upgrade my plan because of rate limits?

If you've already implemented backoff and concurrency-aware queuing and still regularly hit these limits, your usage has likely outgrown your current plan — check your dashboard or contact sales about a higher-throughput plan.

Related Articles

Did this answer your question?