diff --git a/errors/invalid-getserversideprops-return-value.md b/errors/invalid-getserversideprops-return-value.md new file mode 100644 index 000000000000000..8a05d9d5d635b2e --- /dev/null +++ b/errors/invalid-getserversideprops-return-value.md @@ -0,0 +1,21 @@ +# Invalid getServerSideProps Return Value + +#### Why This Error Occurred + +In one of the page's `getServerSideProps` the return value had the incorrect shape. + +#### Possible Ways to Fix It + +Make sure to return the following shape from `getServerSideProps`: + +```ts +export async function getServerSideProps(ctx: GetServerSidePropsContext) { + return { + props: { [key: string]: any } + } +} +``` + +### Useful Links + +- [getServerSideProps](https://nextjs.org/docs/api-reference/data-fetching/get-server-side-props) diff --git a/errors/manifest.json b/errors/manifest.json index 6ac9cdfca23f19c..cad16c91a34458d 100644 --- a/errors/manifest.json +++ b/errors/manifest.json @@ -645,6 +645,10 @@ { "title": "import-next", "path": "/errors/import-next.md" + }, + { + "title": "invalid-getserversideprops-return-value", + "path": "/errors/invalid-getserversideprops-return-value.md" } ] } diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index 660848c496d409c..10140189b685612 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -255,12 +255,17 @@ export type RenderOptsPartial = { export type RenderOpts = LoadComponentsReturnType & RenderOptsPartial -const invalidKeysMsg = (methodName: string, invalidKeys: string[]) => { +const invalidKeysMsg = ( + methodName: 'getServerSideProps' | 'getStaticProps', + invalidKeys: string[] +) => { + const docsPathname = `invalid-${methodName.toLocaleLowerCase()}-value` + return ( `Additional keys were returned from \`${methodName}\`. Properties intended for your component must be nested under the \`props\` key, e.g.:` + `\n\n\treturn { props: { title: 'My Title', content: '...' } }` + `\n\nKeys that need to be moved: ${invalidKeys.join(', ')}.` + - `\nRead more: https://nextjs.org/docs/messages/invalid-getstaticprops-value` + `\nRead more: https://nextjs.org/docs/messages/${docsPathname}` ) }