Well right now s2member is often just dropping IPN calls. I've activated logging in my s2member account - and it clearly showed that Paypal and Stripe IPN calls arrived, but s2member wrongly decided to just drop them!
This applies - to about 0.05% of all Paypal Transactions. (that is a big annoyance - at the end of the quarter I have to go trough the Paypal Transaction report - and compare it to my report from Quaderno in Excel with Vlookup - to see which Transactions are missing. Then I need to solve it in s2member (e.g. prolong account or create account plus send customer an email I'm sorry his account never arrived - well mostly they will have contacted me before already, but not always) - plus manually add an invoice for the customer in Quaderno.
This applies in 60% of all cases to s2member not demoting users if their Stripe subscription did not go through - s2member decides to drop the IPN instead of demote user. This applies to 2-3% of canceled Stripe subscriptions.
Very tedious to check that by going through all canceled/not going through Stripe subscriptions on the Stripe interface - checking the email address vs email logs (as I have 2 websites using both s2member and same stripe account) - then going into wordpress user interface to manually demote user. I therefore stopped selling Stripe subscriptions. I'm not alone with this problem - but does not seem to affect everyone?
this applies very rarely to - s2member not demoting users when Paypal subscription failed (can be found out by analysing the exported user list using s2member export function - by filtering for users without payment last term, and not EOT). Maybe 0.01%.
See also: https://forums.wpsharks.com/t/stripe-developer-error-log-404-err/5019
Also well - did not happen anymore but clearly was a case of s2member not having paypal IPN correctly integrated:
or this: https://github.com/websharks/s2member/issues/1116
I think most s2member users simply do not check their logs and compare transaction lists to userbase to see if each payment got handled 100% correct. Reliability of s2member steadily got worse over the years. On the other hand Quaderno.io so far got everything correct of Paypal IPN forwarded from s2member.
e.g. s2member not handling paypal chargebacks/complaints correctly. Right now - s2member takes action when complaint/chargeback is opened. Correct - s2member should wait how the chargeback/claim is decided. If in interest of buyer - demote/delete user. If in interest of website owner - do nothing (quaderno.io gets this right - and correctly sends/issues refund notices - s2member has it wrong).
So overall Reliability has been a major PITA for me - requiring 10-15 hours of work every month to find/correct s2member being unreliable (~1000 transactions each month)
Or this bug: https://github.com/websharks/s2member/issues/1130
(I actually reported this several times over the last 5 years. Strangely never happened anymore for me since 18 months, before 2-3 times a year).