{
    "api_version": "1",
    "kind": "dse_post",
    "self": "https://update.dsesecurity.com/api/v1/posts/account-for-publisher-slots-when-retiring-a-postgresql-subscription/",
    "item": {
        "id": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/",
        "slug": "account-for-publisher-slots-when-retiring-a-postgresql-subscription",
        "url": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/",
        "alternate_urls": {
            "markdown": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription.md",
            "json": "https://update.dsesecurity.com/api/v1/posts/account-for-publisher-slots-when-retiring-a-postgresql-subscription/"
        },
        "title": "Account for publisher slots when retiring a PostgreSQL subscription",
        "summary": "Keep publisher-slot cleanup owned and visible when a retired subscriber cannot reach its source.",
        "format": {
            "slug": "guide",
            "name": "Guide"
        },
        "priority": {
            "slug": "info",
            "name": "Information"
        },
        "featured": false,
        "image": {
            "theme": "continuity-recovery",
            "label": "Continuity & recovery",
            "alt": "Paired infrastructure paths converging on a stable recovered service.",
            "card_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-card.webp?v=1.8.20",
            "hero_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-hero.webp?v=1.8.20",
            "social_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
            "width": 2400,
            "height": 1350
        },
        "topics": [
            {
                "slug": "business-continuity",
                "name": "Business Continuity",
                "url": "https://update.dsesecurity.com/topic/business-continuity/"
            },
            {
                "slug": "it",
                "name": "IT",
                "url": "https://update.dsesecurity.com/topic/it/"
            }
        ],
        "author": {
            "name": "DSE Security Editorial Team",
            "url": "https://update.dsesecurity.com/#editorial-team",
            "type": "Organization"
        },
        "publisher": {
            "name": "Detection Systems & Engineering",
            "url": "https://dsesecurity.com/"
        },
        "published_at": "2026-10-15T13:32:34+00:00",
        "modified_at": "2026-10-15T13:36:15+00:00",
        "reviewed_on": "2026-10-15",
        "reading_minutes": 2,
        "word_count": 240,
        "potentially_affected": "This applies to PostgreSQL 17 logical-subscription retirement or migration. It concerns ownership of leftover publisher resources, not permission to remove an arbitrary replication slot.",
        "dse_recommendation": "DSE recommends capturing the subscription-to-slot mapping before decommissioning either side.",
        "primary_source": {
            "name": "PostgreSQL 17 — Subscription",
            "url": "https://www.postgresql.org/docs/17/logical-replication-subscription.html",
            "published_on": null,
            "authority": "www.postgresql.org"
        },
        "publishing_principles": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
        "usage_info": "https://update.dsesecurity.com/usage/",
        "copyright_notice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
        "content_html": "<p>Keep publisher-slot cleanup owned and visible when a retired subscriber cannot reach its source.</p>\n<h2>Source facts</h2>\n<p>PostgreSQL 17 normally creates a publisher replication slot with a subscription and removes it when the subscription is dropped. The subscription and slot can also be managed separately. If the publisher is unreachable, retiring the local subscription may require disassociating its slot first. Slots left on a publisher that still exists continue reserving WAL, including any remaining table-synchronization slots, and can eventually fill its disk. Local subscription removal does not prove remote cleanup.</p>\n<p>Source: <a href=\"https://www.postgresql.org/docs/17/logical-replication-subscription.html\">PostgreSQL 17 — Subscription</a>.</p>\n<h2>Applicability</h2>\n<p>This applies to PostgreSQL 17 logical-subscription retirement or migration. It concerns ownership of leftover publisher resources, not permission to remove an arbitrary replication slot.</p>\n<h2>DSE recommendation</h2>\n<p>DSE recommends capturing the subscription-to-slot mapping before decommissioning either side. If a remote server is unavailable, create a tracked follow-up for an administrator to verify its final state when access returns. Require confirmation that no surviving subscriber depends on a slot before approving removal. Keep the publisher&#8217;s retained-WAL monitoring active until cleanup is evidenced. A local administrative success message should not close a retirement task that still has a live remote dependency.</p>\n<h2>Verification</h2>\n<p>Rehearse removal with a disposable publisher and subscriber, including an unreachable-publisher case. Compare the recorded slot inventory before and after cleanup. Verify the intended subscriber is retired, unrelated slots remain, and the publisher is no longer retaining WAL on behalf of the removed relationship.</p>\n<h2>Official reference</h2>\n<p><a href=\"https://www.postgresql.org/docs/17/logical-replication-subscription.html\">PostgreSQL 17 — Subscription</a>. Reviewed October 15, 2026.</p>",
        "content_text": "Keep publisher-slot cleanup owned and visible when a retired subscriber cannot reach its source.\nSource facts\nPostgreSQL 17 normally creates a publisher replication slot with a subscription and removes it when the subscription is dropped. The subscription and slot can also be managed separately. If the publisher is unreachable, retiring the local subscription may require disassociating its slot first. Slots left on a publisher that still exists continue reserving WAL, including any remaining table-synchronization slots, and can eventually fill its disk. Local subscription removal does not prove remote cleanup.\nSource: PostgreSQL 17 — Subscription.\nApplicability\nThis applies to PostgreSQL 17 logical-subscription retirement or migration. It concerns ownership of leftover publisher resources, not permission to remove an arbitrary replication slot.\nDSE recommendation\nDSE recommends capturing the subscription-to-slot mapping before decommissioning either side. If a remote server is unavailable, create a tracked follow-up for an administrator to verify its final state when access returns. Require confirmation that no surviving subscriber depends on a slot before approving removal. Keep the publisher’s retained-WAL monitoring active until cleanup is evidenced. A local administrative success message should not close a retirement task that still has a live remote dependency.\nVerification\nRehearse removal with a disposable publisher and subscriber, including an unreachable-publisher case. Compare the recorded slot inventory before and after cleanup. Verify the intended subscriber is retired, unrelated slots remain, and the publisher is no longer retaining WAL on behalf of the removed relationship.\nOfficial reference\nPostgreSQL 17 — Subscription. Reviewed October 15, 2026.",
        "content_markdown": "Keep publisher-slot cleanup owned and visible when a retired subscriber cannot reach its source.\n\n## Source facts\n\nPostgreSQL 17 normally creates a publisher replication slot with a subscription and removes it when the subscription is dropped. The subscription and slot can also be managed separately. If the publisher is unreachable, retiring the local subscription may require disassociating its slot first. Slots left on a publisher that still exists continue reserving WAL, including any remaining table-synchronization slots, and can eventually fill its disk. Local subscription removal does not prove remote cleanup.\n\nSource: [PostgreSQL 17 — Subscription](https://www.postgresql.org/docs/17/logical-replication-subscription.html).\n\n## Applicability\n\nThis applies to PostgreSQL 17 logical-subscription retirement or migration. It concerns ownership of leftover publisher resources, not permission to remove an arbitrary replication slot.\n\n## DSE recommendation\n\nDSE recommends capturing the subscription-to-slot mapping before decommissioning either side. If a remote server is unavailable, create a tracked follow-up for an administrator to verify its final state when access returns. Require confirmation that no surviving subscriber depends on a slot before approving removal. Keep the publisher’s retained-WAL monitoring active until cleanup is evidenced. A local administrative success message should not close a retirement task that still has a live remote dependency.\n\n## Verification\n\nRehearse removal with a disposable publisher and subscriber, including an unreachable-publisher case. Compare the recorded slot inventory before and after cleanup. Verify the intended subscriber is retired, unrelated slots remain, and the publisher is no longer retaining WAL on behalf of the removed relationship.\n\n## Official reference\n\n[PostgreSQL 17 — Subscription](https://www.postgresql.org/docs/17/logical-replication-subscription.html). Reviewed October 15, 2026."
    },
    "json_ld": {
        "@context": "https://schema.org",
        "@graph": [
            {
                "@type": "Organization",
                "@id": "https://dsesecurity.com/#organization",
                "name": "Detection Systems & Engineering",
                "alternateName": "DSE Security",
                "url": "https://dsesecurity.com/",
                "logo": {
                    "@type": "ImageObject",
                    "url": "https://update.dsesecurity.com/assets/dse-logo-20260812.png?v=1.8.20"
                }
            },
            {
                "@type": "Organization",
                "@id": "https://update.dsesecurity.com/#editorial-team",
                "name": "DSE Security Editorial Team",
                "url": "https://update.dsesecurity.com/",
                "parentOrganization": {
                    "@id": "https://dsesecurity.com/#organization"
                }
            },
            {
                "@type": "WebSite",
                "@id": "https://update.dsesecurity.com/#website",
                "name": "DSE Updates",
                "alternateName": "DSE Security Knowledge Hub",
                "url": "https://update.dsesecurity.com/",
                "inLanguage": "en-US",
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "potentialAction": {
                    "@type": "SearchAction",
                    "target": {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://update.dsesecurity.com/?q={search_term_string}"
                    },
                    "query-input": "required name=search_term_string"
                }
            },
            {
                "@type": "WebPage",
                "@id": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/",
                "url": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/",
                "isPartOf": {
                    "@id": "https://update.dsesecurity.com/#website"
                },
                "lastReviewed": "2026-10-15"
            },
            {
                "@type": "BreadcrumbList",
                "@id": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/#breadcrumbs",
                "itemListElement": [
                    {
                        "@type": "ListItem",
                        "position": 1,
                        "name": "DSE Updates",
                        "item": "https://update.dsesecurity.com/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 2,
                        "name": "Account for publisher slots when retiring a PostgreSQL subscription",
                        "item": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/"
                    }
                ]
            },
            {
                "@type": [
                    "Article",
                    "TechArticle"
                ],
                "@id": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/#article",
                "identifier": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/",
                "url": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/",
                "headline": "Account for publisher slots when retiring a PostgreSQL subscription",
                "description": "Keep publisher-slot cleanup owned and visible when a retired subscriber cannot reach its source.",
                "abstract": "Keep publisher-slot cleanup owned and visible when a retired subscriber cannot reach its source.",
                "articleBody": "Keep publisher-slot cleanup owned and visible when a retired subscriber cannot reach its source.\nSource facts\nPostgreSQL 17 normally creates a publisher replication slot with a subscription and removes it when the subscription is dropped. The subscription and slot can also be managed separately. If the publisher is unreachable, retiring the local subscription may require disassociating its slot first. Slots left on a publisher that still exists continue reserving WAL, including any remaining table-synchronization slots, and can eventually fill its disk. Local subscription removal does not prove remote cleanup.\nSource: PostgreSQL 17 — Subscription.\nApplicability\nThis applies to PostgreSQL 17 logical-subscription retirement or migration. It concerns ownership of leftover publisher resources, not permission to remove an arbitrary replication slot.\nDSE recommendation\nDSE recommends capturing the subscription-to-slot mapping before decommissioning either side. If a remote server is unavailable, create a tracked follow-up for an administrator to verify its final state when access returns. Require confirmation that no surviving subscriber depends on a slot before approving removal. Keep the publisher’s retained-WAL monitoring active until cleanup is evidenced. A local administrative success message should not close a retirement task that still has a live remote dependency.\nVerification\nRehearse removal with a disposable publisher and subscriber, including an unreachable-publisher case. Compare the recorded slot inventory before and after cleanup. Verify the intended subscriber is retired, unrelated slots remain, and the publisher is no longer retaining WAL on behalf of the removed relationship.\nOfficial reference\nPostgreSQL 17 — Subscription. Reviewed October 15, 2026.",
                "datePublished": "2026-10-15T13:32:34+00:00",
                "dateModified": "2026-10-15T13:36:15+00:00",
                "mainEntityOfPage": {
                    "@id": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/"
                },
                "inLanguage": "en-US",
                "isAccessibleForFree": true,
                "author": {
                    "@type": "Organization",
                    "name": "DSE Security Editorial Team",
                    "url": "https://update.dsesecurity.com/#editorial-team"
                },
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "image": {
                    "@type": "ImageObject",
                    "@id": "https://update.dsesecurity.com/updates/account-for-publisher-slots-when-retiring-a-postgresql-subscription/#primaryimage",
                    "url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "contentUrl": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "width": 1200,
                    "height": 630,
                    "caption": "Account for publisher slots when retiring a PostgreSQL subscription"
                },
                "articleSection": [
                    "Business Continuity",
                    "IT"
                ],
                "keywords": [
                    "Business Continuity",
                    "IT",
                    "Guide",
                    "Information priority"
                ],
                "genre": "Guide",
                "about": [
                    {
                        "@type": "Thing",
                        "name": "Business Continuity",
                        "url": "https://update.dsesecurity.com/topic/business-continuity/"
                    },
                    {
                        "@type": "Thing",
                        "name": "IT",
                        "url": "https://update.dsesecurity.com/topic/it/"
                    }
                ],
                "wordCount": 240,
                "timeRequired": "PT2M",
                "publishingPrinciples": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
                "usageInfo": "https://update.dsesecurity.com/usage/",
                "copyrightHolder": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "copyrightNotice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
                "citation": {
                    "@type": "CreativeWork",
                    "name": "PostgreSQL 17 — Subscription",
                    "url": "https://www.postgresql.org/docs/17/logical-replication-subscription.html"
                }
            }
        ]
    }
}