Skip to content

Next.js 12/13 On-demand revalidation isn't working #3116

Open
@andre-mr

Description

@andre-mr

Before opening, please confirm:

  • I have checked to see if my question is addressed in the FAQ.
  • I have searched for duplicate or closed issues.
  • I have read the guide for submitting bug reports.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I have removed any sensitive information from my code snippets and submission.

App Id

d2dyf3i5dmf2ci

AWS Region

sa-east-1

Amplify Hosting feature

SSR

Describe the bug

I was following this issue: #2343 and was happy today with announcement of public launch of 12/13 support. I was using Vercel while working on a project since i need "on demand revalidate" feature.

Then I created a fresh new Amplify app today, just connecting the same repository/branch used for Vercel app.

For my surprise, after all deploy process (nice to see it faster than before now), I see revalidate call not working.

It's a simplest, basic call just for testing, like url/api/revalidate wich fires revalidation to index page ("/").

Vercel response tried just now:
{"revalidated":true}

Amplify response tried just now:
Error revalidating

Vercel success response is shown in about 4~5 seconds. Amplify error is shown in about 10 seconds.

Is Next 12 support working already? Am I missing some Amplify exclusive setting to make it work?

Next.js config:

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
  swcMinify: true,
  images: {
    domains: [process.env.AMAZON_S3_DOMAIN],
  },
};

module.exports = nextConfig;

Versions. I tried older (next 12.2.5) before, then updated and tried these with same results:
"aws-sdk": "^2.1257.0",
"next": "13.0.3",

Sorry if it's not a bug, I didn't selected "feature request" because it's a feature already requested and launched. didn't Selected question because the exact same repository just works in Vercel but not in Amplify, so I believe it's a bug. If it's not, please remove "bug" tag if I can't.

Expected behavior

revalidation call working:
{"revalidated":true}

Reproduction steps

a call to url/api/revalidate (no token used just for making test easier for now).

Build Settings

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Log output

# Put your logs below this line

Failed to update prerender cache for /index [Error: EROFS: read-only file system, open '/var/task/.next/server/pages/index.html'] {
errno: -30,
code: 'EROFS',
syscall: 'open',
path: '/var/task/.next/server/pages/index.html'
}
MissingRequiredParameter: Missing required key 'TableName' in params
at ParamValidator.fail (/var/task/node_modules/aws-sdk/lib/param_validator.js:50:37)
at ParamValidator.validateStructure (/var/task/node_modules/aws-sdk/lib/param_validator.js:62:14)
at ParamValidator.validateMember (/var/task/node_modules/aws-sdk/lib/param_validator.js:89:21)
at ParamValidator.validate (/var/task/node_modules/aws-sdk/lib/param_validator.js:34:10)
at Request.VALIDATE_PARAMETERS (/var/task/node_modules/aws-sdk/lib/event_listeners.js:132:42)
at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at callNextListener (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:96:12)
at /var/task/node_modules/aws-sdk/lib/event_listeners.js:86:9
at finish (/var/task/node_modules/aws-sdk/lib/config.js:396:7)
at /var/task/node_modules/aws-sdk/lib/config.js:438:9 {
code: 'MissingRequiredParameter',
time: 2022-11-17T22:55:20.194Z
}
TypeError: res.hasHeader is not a function
at Object.setRevalidateHeaders (/var/task/node_modules/next/dist/server/send-payload/revalidate-headers.js:8:37)
at Object.sendRenderResult (/var/task/node_modules/next/dist/server/send-payload/index.js:62:33)
REPORT RequestId: 32c96093-d335-49d8-81a7-a3aa49eadf62	Duration: 9106.08 ms	Billed Duration: 9107 ms	Memory Size: 1024 MB	Max Memory Used: 149 MB	Init Duration: 1101.52 ms	
REPORT RequestId: 3172296f-60c9-44a6-9476-9dc85ccfa94a	Duration: 11.36 ms	Billed Duration: 12 ms	Memory Size: 1024 MB	Max Memory Used: 150 MB	

Additional information

at build time, index page is rendered as expected, but i can't fire revalidate on it.
the erros shown in log don't exist in local or vercel deploys...

Metadata

Metadata

Assignees

No one assigned

    Labels

    computefeature-requestNew feature or requestssrServer Side Rendering feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions