I'm having this issue only since updating to iOS 15.3. On 15.2.1 I didn't have such issues.
My app can receive one (or a few) silent push notifications after a reboot (launching the app from Xcode), but after that there are no more notifications delivered to my app.
In the logs I see
com.apple.pushLaunch.MY.APP.ID:BC0525:[
{name: ApplicationPolicy, policyWeight: 50.000, response: {Decision: Absolutely Must Proceed, Score: 1.00, Rationale: [{[appIsForeground]: Required:1.00, Observed:1.00},]}}
{name: CPUUsagePolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[Max allowed CPU Usage level]: Required:50.00, Observed:95.00},]}}
{name: DataBudgetPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{remainingBudget == 546133.3333333358 AND projectedUsage == 5242880 AND percentage == 0.1}]}}
{name: NetworkQualityPolicy, policyWeight: 11.400, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[wifiQuality]: Required:50.00, Observed:0.00},{[cellQuality]: Required:50.00, Observed:0.00},{[networkPathAvailability]: Required:1.00, Observed:1.00},]}}
], FinalDecision: Absolutely Must Proceed}
shortly before receiving the call to didReceiveRemoteNotification.
But a few seconds later there is a log like this one:
com.apple.pushLaunch.MY.APP.ID:A018AC:[
{name: ApplicationPolicy, policyWeight: 50.000, response: {Decision: Absolutely Must Not Proceed, Score: 0.00, Rationale: [{[pushDisallowed]: Required:0.00, Observed:1.00},]}}
{name: CPUUsagePolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[Max allowed CPU Usage level]: Required:50.00, Observed:95.00},]}}
{name: DataBudgetPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{remainingBudget == 546133.3333333358 AND projectedUsage == 5242880 AND percentage == 0.1}]}}
], FinalDecision: Absolutely Must Not Proceed}
Why pushDisallowed??