github-script icon indicating copy to clipboard operation
github-script copied to clipboard

[BUG]: [Create Review] 422: Unprocessable Entity: Review comments is invalid and Review threads is invalid

Open akpay opened this issue 3 years ago • 1 comments

What happened?

Use Case,

I'm using Create review PR API to create PR comments by sending multiple comments as array in single request input field comments. It works as expected.

Issue,

When I tried to split single request Create review PR API into multiple requests by limiting comments input batch array of 20 comments per API call then it succeeds for first batch but second batch request fails with error "422: Unprocessable Entity: Review comments is invalid and Review threads is invalid"

Failed response status,

422 Validation failed, or the endpoint has been spammed.

Limitation?

Do we have any maximum number/length/character limitation for comments array in single request Create review PR API input field comments

Root Cause?

Why issue happens only for multiple requests to Create review PR API? Is that due to rate limiting/spam issues for endpoint?

Versions

actions/github-script@v6, octokit-core.js/3.6.0, Node.js/16.13.0 (linux; x64)

Relevant log output

RequestError [HttpError]: Unprocessable Entity: "Review comments is invalid and Review threads is invalid"
    at /runner/_work/_actions/actions/github-script/v6/dist/index.js:6172:21
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  status: 422,
  response: {
    url: 'https://api.github.com/repos/{ORG}/{REPO}/pulls/{PR}/reviews',
    status: 422,
    headers: {
      'access-control-allow-origin': '*',
      'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset',
      connection: 'close',
Error: Unhandled error: HttpError: Unprocessable Entity: "Review comments is invalid and Review threads is invalid"
      'content-length': '206',
      'content-security-policy': "default-src 'none'",
      'content-type': 'application/json; charset=utf-8',
      date: 'Wed, 21 Dec 2022 07:14:45 GMT',
      'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
      server: 'GitHub.com',
      'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
      vary: 'Accept-Encoding, Accept, X-Requested-With',
      'x-accepted-oauth-scopes': '',
      'x-content-type-options': 'nosniff',
      'x-frame-options': 'deny',
      'x-github-api-version-selected': '2022-11-28',
      'x-github-media-type': 'github.v3',
      'x-github-request-id': 'FDAD:1CB0:FEC18:12B194:63A2B260',
      'x-oauth-scopes': 'repo',
      'x-ratelimit-limit': '5000',
      'x-ratelimit-remaining': '4819',
      'x-ratelimit-reset': '1671608480',
      'x-ratelimit-resource': 'core',
      'x-ratelimit-used': '181',
      'x-xss-protection': '0'
    },
    data: {
      message: 'Unprocessable Entity',
      errors: [Array],
      documentation_url: 'https://docs.github.com/rest/reference/pulls#create-a-review-for-a-pull-request'
    }
  },
  request: {
    method: 'POST',
    url: 'https://api.github.com/repos/{ORG}/{REPO}/pulls/{PR}/reviews',
    headers: {
      accept: 'application/vnd.github.-preview+json',
      'user-agent': 'actions/github-script octokit-core.js/3.6.0 Node.js/16.13.0 (linux; x64)',
      authorization: 'token [REDACTED]',
      'content-type': 'application/json; charset=utf-8'
    },
    body: '{"event":"COMMENT","commit_id":"a6f6058f93f6bc119324e4824248d6206d087b86","comments":[{COMMENTS_ARR}]}',
    request: { agent: [Agent], hook: [Function: bound bound register] }
  }
}

akpay avatar Dec 21 '22 09:12 akpay

What's the plan for fixing this issue? Is there a temporary fix?

saurabhsh5 avatar Nov 07 '23 19:11 saurabhsh5