Error message extraction:
- phpList v3 nests the actual message inside data.message:
{"status":"error","data":{"code":0,"message":"invalid call"}}
Previous code read data as a raw value and got "Array" in the logs.
Now checks data.message first, falls back to top-level fields.
listSubscriberAdd:
- Send both naming conventions (listid/subscriberid AND list_id/subscriber_id)
so the call works regardless of which phpList REST API build is installed.
- Add debug log line showing exact param values sent, making future
diagnosis straightforward without needing server-side inspection.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>