Discussions

Ask a Question
Back to all

Critical Issue with Parallel Attendance Booking Deletions - Bookings Persist Despite Successful API Responses

Priority: High

Description:

We are experiencing a critical issue with the Attendance API when performing parallel deletions of attendance bookings that is significantly impacting our automated sync processes.

Background:
Our organization needs to synchronize attendance data between our native time booking application and Personio for periodic time spans. Due to accounting requirements, we perform full synchronization of two-month periods, which involves:

  • ~40,000 attendance bookings to delete (existing data)
  • ~40,000 attendance bookings to create (new data)
  • Only WORK type bookings (no breaks)

The Problem:
When deleting attendance bookings using parallel API calls (concurrent requests), a significant number of bookings persist in the system despite the DELETE API returning successful HTTP 200 responses. This issue is:

  1. Consistently reproducible - occurs every time we sync periods with substantial data (~775+ bookings)
  2. Persistent - affected bookings remain in the system for hours/days, ruling out caching issues
  3. Parallel-specific - sequential deletion of the same bookings works correctly
  4. Creation unaffected - parallel creation of attendance bookings works without issues

Technical Details:

  • We use rate limiting (5 concurrent requests, 100ms minimum interval)
  • All delete requests return HTTP 2xx with success responses
  • Affected bookings have no apparent distinguishing characteristics
  • The same booking IDs that "fail" to delete in parallel mode are successfully deleted when processed sequentially

Example Scenario:

  • Day sync with 775 WORK bookings
  • Parallel deletion: ~10-100 bookings persist despite API success responses
  • Sequential deletion of identical dataset: 0 bookings persist

Business Impact:
This forces us to use sequential processing, resulting in:

  • Sync times of multiple hours for two-month periods

Requests:

  1. ASAP: Investigation and fix for the parallel deletion consistency issue
  2. Feature Request: Bulk/batch APIs for attendance bookings to eliminate the need for thousands of individual API calls
  3. Documentation: Clear guidance on rate limits and concurrency constraints for attendance operations

Expected Behavior:
Parallel deletion should behave identically to sequential deletion - when the API returns success, the booking should be permanently removed from the system.

Current Workaround:
We've been forced to implement sequential deletion, which severely impacts performance and user experience.

API Endpoints Affected:

  • DELETE [/company/attendance-bookings/{id}](https://api.personio.de/v2/attendance-periods/{id})
  • GET [/company/attendance-bookings](https://api.personio.de/v2/attendance-periods) (for verification)

Additional Context:
We would greatly appreciate bulk import/export capabilities for attendance data, as individual API calls for 40,000+ records is neither efficient nor reliable for enterprise-scale operations.