javascript
javascript copied to clipboard
Public metadata must be a string containing a valid JSON object
- [x] Review the documentation: https://docs.clerk.dev/
- [x] Search for existing issues: https://github.com/clerkinc/javascript/issues
- [x] Go through package changelog files.
- [x] Provide the Frontend API key from your application dashboard.
Package + Version
- [ ]
@clerk/clerk-js - [ ]
@clerk/clerk-react - [x]
@clerk/nextjs - [ ]
@clerk/remix - [ ]
@clerk/types - [ ]
@clerk/themes - [ ]
@clerk/clerk-expo - [ ]
@clerk/backend-core - [x]
@clerk/clerk-sdk-node - [ ]
@clerk/edge - [ ] other:
Version:
"@clerk/clerk-sdk-node": "^4.0.2",
"@clerk/nextjs": "^4.0.2",
Browser/OS
Chrome latest
Description
import clerk from '@clerk/clerk-sdk-node'
import { withAuth } from '@clerk/nextjs/api'
/**
* invite a user by email
*/
const invite = withAuth(async (req, res) => {
if (req.method === 'POST') {
const { userId } = req.auth
if (!userId) {
return res.status(401).json('no userId found')
}
const publicMetadata = Object.create(null)
publicMetadata.userType = 'invite'
const response = await clerk.invitations.createInvitation({
emailAddress: req.body.email_address,
publicMetadata: {
type: 'invite'
}
})
res.json(response)
res.status(200)
} else if (req.method === 'GET') {
res.json(
await clerk.invitations.getInvitationList()
)
}
})
export default invite
error - ClerkAPIResponseError: Unprocessable Entity
at Object.request (/Users/himself65/Code/textea-sheet/node_modules/@clerk/clerk-sdk-node/dist/Clerk.js:56:31)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Clerk.request (/Users/himself65/Code/textea-sheet/node_modules/@clerk/backend-core/dist/cjs/api/ClerkBackendApi.js:46:22)
at async eval (webpack-internal:///(api)/./src/pages/api/invite.ts:27:26)
at async Object.apiResolver (/Users/himself65/Code/textea-sheet/node_modules/next/dist/server/api-utils/node.js:184:9)
at async DevServer.runApi (/Users/himself65/Code/textea-sheet/node_modules/next/dist/server/next-server.js:403:9)
at async Object.fn (/Users/himself65/Code/textea-sheet/node_modules/next/dist/server/base-server.js:493:37)
at async Router.execute (/Users/himself65/Code/textea-sheet/node_modules/next/dist/server/router.js:222:36)
at async DevServer.run (/Users/himself65/Code/textea-sheet/node_modules/next/dist/server/base-server.js:612:29)
at async DevServer.run (/Users/himself65/Code/textea-sheet/node_modules/next/dist/server/dev/next-dev-server.js:569:20) {
clerkError: true,
status: 422,
errors: [
{
code: 'form_param_value_invalid',
message: 'Public metadata must be a string containing a valid JSON object. To reset the public metadata, use an empty JSON object ("{}").',
longMessage: 'Public metadata must be a string containing a valid JSON object. To reset the public metadata, use an empty JSON object ("{}").',
meta: [Object]
}
],
page: '/api/invite'
}