PIR · 2026-07-29 pros-blog.padi.com · Content

Pros Blog Duplicate Posts

Contained · Cleanup Pending
Reported
29 Jul 2026
by Sarah Morlock
Severity
P3 · Content integrity
No site outage
Investigation lead
PADI engineering
team
Report owner
Bassam Ismail
01

Executive Summary

Contained

The duplicate posts have been traced and isolated. They were background drafts that WordPress created when the team used "Copy to New Draft" to inspect content it could not edit; the affected drafts are staged for admin cleanup.

The Pros blog (pros-blog.padi.com) is still on WordPress, pending its migration into Drupal. The PADI engineering team holds Author-level access only on that site.

While investigating author-landing-page behaviour, the team needed to inspect field values and revision history on posts it could not edit. The only way to view that data was WordPress's "Copy to New Draft" action. Working from Drupal's behaviour — where an unsaved form creates no record — the team assumed nothing would be saved. WordPress, however, creates a draft in the background the moment "Copy to New Draft" is used, saved or not. Inspecting roughly 10–15 posts this way silently generated draft copies.

These background drafts are what surfaced as the duplicate posts behind Sarah Morlock's report, "Urgent: Duplicate Posts Causing B2B Blog Errors." No legitimate published content was lost; the issue is limited to extra draft records under the shared Axelerant author account.

02

Customer and Business Impact

03

Answers to Stakeholder Questions

04

Incident Timeline

Dates are reconstructed from the investigation notes and post last-modified timestamps; exact times to be confirmed.

05

Root Cause and Contributing Factors

Primary root cause: WordPress's "Copy to New Draft" persists a draft in the background the moment it is used, whether or not the form is saved. Working from Drupal's behaviour — where an unsaved form creates no node — the team used it to inspect field and revision data and unknowingly generated draft copies.

Contributing factors: the PADI engineering team holds Author-level access only, so duplication was the only route to view field/revision data on posts the team could not edit; a single shared Axelerant author account means per-person attribution is not possible; and Author-level access prevents the team from bulk-deleting the drafts without admin support.

06

Cleanup Decision and Approach

Why can't the duplicates simply be deleted by the team?

The PADI engineering team's access on the Pros blog is Author-level, which does not permit bulk deletion of posts. The affected records were therefore isolated rather than removed directly: filtering the post list by the author account (?author=199) cleanly separates the unintended drafts from legitimate content.

Cleanup requires an admin action. The filtered list has been shared with the site admin to move the drafts to trash; alternatively, the team can complete the removal itself if granted temporary admin access. Legitimate published content is untouched by either route.

07

What Went Well and What Did Not

08

Corrective and Preventive Actions

09

Lessons Learned

10

Preventing Recurrence

Inspection of Pros-blog content moves off the live site, the "Copy to New Draft" action is no longer used there, and the behaviour is documented for the team. The underlying exposure is eliminated once the Pros blog completes its migration into Drupal, which is already in progress.