Deletion Workflow Optimization


Client:

Amazon Web Services (AWS)

 
 

Overview
In complex IoT environments, deleting a device is not as simple as removing a single entity. Each device can be linked to multiple certificates and policies, creating a dense dependency network. I led the design effort to resolve a recurring deletion workflow failure that generated roughly 150 support tickets and caused confusion for developers attempting to manage their IoT resources.

 

Challenge

Developers frequently encountered deletion errors when removing devices through the AWS IoT console. The issue stemmed from how IoT policies were architected: a single policy could be attached to multiple devices and certificates. When users triggered a device deletion, the backend attempted to recursively delete all associated resources — policies, certificates, and links — sometimes resulting in an unbounded chain of API calls and eventual failure.
The destructive potential of deleting shared policies also made automatic cleanup risky, leaving users stuck and generating recurring support tickets.

Approach

Working closely with service engineers, I analyzed customer support logs and observed how users interacted with the deletion flow. Through this analysis, we discovered a recurring pattern of confusion around what was being deleted versus detached.

Optimized the deletion process to mitigate runaway API chains by intentionally constraining deletion depth to devices and certificates, ensuring shared policies are detached—not deleted—to avoid destructive cascading actions.

I redesigned the deletion interaction to clarify scope and prevent runaway API calls. Instead of attempting to remove every linked entity, the new workflow safely deletes the device and its certificates but detaches shared policies without deleting them.
This solution balanced safety with user control, allowing developers to maintain system integrity while completing deletions successfully. Clear confirmation dialogs and visual cues were added to communicate which resources would be affected.

Impact

  • Resolved ~150 recurring customer support tickets related to deletion failures.

  • Improved customer self-service by allowing safe, predictable resource cleanup directly in the console.

Analyzing patterns in customer pain points to identify usability gaps and prioritize improvements for future releases.

  • Reduced unnecessary API calls and system strain through optimized deletion logic.

  • Increased user confidence and reduced perceived “system errors” by making the deletion logic transparent and consistent.

  • Eliminated all recurring support cases related to deletion failures — the issue volume dropped from ~150 tickets to zero after launch.

  • Unblocked customers who were previously unable to delete or reset their IoT resources, enabling full self-service without engineering intervention.

  • Improved reliability and trust in the console by making deletion actions predictable and transparent.

  • Reduced backend load by preventing unnecessary recursive API calls, optimizing both system efficiency and customer experience.