diff --git a/apps/docs/features/docs/Troubleshooting.utils.shared.ts b/apps/docs/features/docs/Troubleshooting.utils.shared.ts
index 2e87d4288501f..5e804f7623631 100644
--- a/apps/docs/features/docs/Troubleshooting.utils.shared.ts
+++ b/apps/docs/features/docs/Troubleshooting.utils.shared.ts
@@ -12,7 +12,7 @@ export const TROUBLESHOOTING_DATA_ATTRIBUTES = {
}
export function formatError(error: ITroubleshootingEntry['data']['errors'][number]) {
- return `${error.http_status_code ?? ''}${!!error.http_status_code && !!error.code && ' '}${error.code ?? ''}`
+ return `${error.http_status_code ?? ''}${!!error.http_status_code && !!error.code ? ' ' : ''}${error.code ?? ''}`
}
export const troubleshootingSearchParams = {
diff --git a/apps/docs/internals/generate-sitemap.ts b/apps/docs/internals/generate-sitemap.ts
index 876507a471989..f1d37d6d8b5f0 100644
--- a/apps/docs/internals/generate-sitemap.ts
+++ b/apps/docs/internals/generate-sitemap.ts
@@ -15,7 +15,7 @@ async function generate() {
const cliPages = generateCLIPages()
const referencePages = await generateReferencePages()
- const contentFiles = await globby(['content/**/!(_)*.mdx'])
+ const contentFiles = await globby(['content/guides/**/!(_)*.mdx'])
const contentPages = await Promise.all(
contentFiles.map(async (filePath) => {
const fileContents = await fs.promises.readFile(filePath, 'utf8')
@@ -30,7 +30,18 @@ async function generate() {
})
)
+ const troubleshootingFiles = await globby(['content/troubleshooting/**/!(_)*.mdx'])
+ const troubleshootingPages = await Promise.all(
+ troubleshootingFiles.map(async (filePath) => {
+ return {
+ link: filePath.replace(/^content/, 'guides').replace(/\.mdx$/, ''),
+ priority: 1,
+ }
+ })
+ )
+
const allPages = (contentPages as Array<{ link: string; priority?: number }>).concat(
+ troubleshootingPages,
referencePages,
cliPages
)
diff --git a/apps/www/_blog/2024-12-05-supabase-queues.mdx b/apps/www/_blog/2024-12-05-supabase-queues.mdx
index 83d4723c833f8..38cb1fd6e2dc0 100644
--- a/apps/www/_blog/2024-12-05-supabase-queues.mdx
+++ b/apps/www/_blog/2024-12-05-supabase-queues.mdx
@@ -105,7 +105,7 @@ Once your Queue is configured you can begin adding Messages.
}}
/>
-### Adding Messages from the Dashboard
+### From the Dashboard
Let's create a new Basic Queue and add a Message.
@@ -133,7 +133,7 @@ Let's create a new Basic Queue and add a Message.
}}
/>
-### Adding messages from the server
+### From the server
If you're [connecting](/docs/guides/database/connecting-to-postgres) to your Postgres database from a server, you can add messages using SQL from any Postgres client:
@@ -144,7 +144,7 @@ select * from pgmq.send(
);
```
-### Adding messages from the client
+### From the client
We have provided several functions that can be invoked from the [client libraries](/docs#client-libraries) if you need to add messages from a browser or mobile app. For example:
@@ -214,6 +214,12 @@ From the Queues page, just click on a Queue to inspect it. From there you can cl
}}
/>
+## Pricing
+
+Supabase Queues runs entirely in your database so there's no additional costs to use the functionality.
+
+We recommend you configure your database's Compute and Disk settings appropriately to support your Queues workload.
+
## Postgres for Everything
Using Postgres for your Queue system keeps your stack lean and familiar. You can add Messages to Queues within the same transaction that modifies related data, preventing inconsistencies and reducing the need for additional coordination. Postgres' robust indexing, JSONB support, and partitioning also enable scalable, high-performance queue management directly in your database.
diff --git a/examples/auth/nextjs/components/AuthButton.tsx b/examples/auth/nextjs/components/AuthButton.tsx
index d16f5fe88057f..ec94bfd0bd4fd 100644
--- a/examples/auth/nextjs/components/AuthButton.tsx
+++ b/examples/auth/nextjs/components/AuthButton.tsx
@@ -12,7 +12,7 @@ export default async function AuthButton() {
const signOut = async () => {
'use server'
- const supabase = createClient()
+ const supabase = await createClient()
await supabase.auth.signOut()
return redirect('/login')
}