Render List jobs endpoint throws an error when passing multiple statuses as a param

As described in the title, when passing multiple status to List Jobs endpoint it throws an 500 Error. When passing only one status it works correctly.

I’m suing Node.js SDK:

  • version: ^6.1.1

Sample code:

const renderSDK = require('api')('@render-api/v1.0#jw0325lr5hblce');
renderSDK.auth(process.env.RENDER_API_KEY);

const jobs = await renderSDK.listJob({
  status: 'running,pending',
  serviceId: process.env.RENDER_MAIN_SERVICE_ID,
});

Error:

listRenderJobs error: FetchError: Internal Server Error
    at new FetchError (/Users/dimimikadze/code/smartfind/smartfind-scraper/node_modules/api/dist/core/errors/fetchError.js:21:28)
    at APICore.<anonymous> (/Users/dimimikadze/code/smartfind/smartfind-scraper/node_modules/api/dist/core/index.js:152:51)
    at step (/Users/dimimikadze/code/smartfind/smartfind-scraper/node_modules/api/dist/core/index.js:44:23)
    at Object.next (/Users/dimimikadze/code/smartfind/smartfind-scraper/node_modules/api/dist/core/index.js:25:53)
    at fulfilled (/Users/dimimikadze/code/smartfind/smartfind-scraper/node_modules/api/dist/core/index.js:16:58)
    at processTicksAndRejections (node:internal/process/task_queues:95:5) {
  status: 500,
  data: { message: 'internal server error' },
  headers: _HeadersList {
    cookies: [
      '__cf_bm=3ZHWWU7k4Ai9_U0C8u1Jl7UyzV3xdISbN.76rMLPbyo-1706555843-1-ARNm7fltUVySUEXppJ8Ojj06OjrZU097BlizIFky9/4hyHH/5xFWnNDGrtsg7sx9gwbYi/7FO+MtZlD5DEQrJP4=; path=/; expires=Mon, 29-Jan-24 19:47:23 GMT; domain=.render.com; HttpOnly; Secure; SameSite=None'
    ],
    [Symbol(headers map)]: Map(19) {
      'date' => [Object],
      'content-type' => [Object],
      'content-length' => [Object],
      'connection' => [Object],
      'ratelimit-limit' => [Object],
      'ratelimit-remaining' => [Object],
      'ratelimit-reset' => [Object],
      'referrer-policy' => [Object],
      'render-request-id' => [Object],
      'strict-transport-security' => [Object],
      'vary' => [Object],
      'x-content-type-options' => [Object],
      'x-frame-options' => [Object],
      'x-xss-protection' => [Object],
      'cf-cache-status' => [Object],
      'set-cookie' => [Object],
      'server' => [Object],
      'cf-ray' => [Object],
      'alt-svc' => [Object]
    },
    [Symbol(headers map sorted)]: null
  },
  res: _Response [Response] {
    [Symbol(realm)]: null,
    [Symbol(state)]: {
      aborted: false,
      rangeRequested: false,
      timingAllowPassed: true,
      requestIncludesCredentials: true,
      type: 'default',
      status: 500,
      timingInfo: [Object],
      cacheState: '',
      statusText: 'Internal Server Error',
      headersList: [_HeadersList],
      urlList: [Array],
      body: [Object]
    },
    [Symbol(headers)]: _HeadersList {
      cookies: [Array],
      [Symbol(headers map)]: [Map],
      [Symbol(headers map sorted)]: null
    }
  }
}

Hi there,

Looking at our current REST API schema definition, status is an array of strings, so try doing it as status: ['running','pending']. This works for me. I’m not sure where exactly the issue lies, as what you are doing works from our REST API docs when just sending the statuses as a string. So you were just following our docs. The difference is when doing the same from your local code, the URL that is sent to our REST API is encoded differently, causing the 500 response.

Looking at our schema definition status: ['running','pending'] should be the correct way to do it.

Regards,

Keith
Render Support, UTC+10 :australia:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.