Discussions
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:
- Consistently reproducible - occurs every time we sync periods with substantial data (~775+ bookings)
- Persistent - affected bookings remain in the system for hours/days, ruling out caching issues
- Parallel-specific - sequential deletion of the same bookings works correctly
- 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:
- ASAP: Investigation and fix for the parallel deletion consistency issue
- Feature Request: Bulk/batch APIs for attendance bookings to eliminate the need for thousands of individual API calls
- 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.