Post

Replies

Boosts

Views

Activity

Reply to Getting a basic URL Filter to work
Hi everyone, I've been following this thread closely — it's been extremely helpful for getting NEURLFilterManager working. I'm now facing the pirSkipRegistration = NO blocker. My setup: Filter extension activates and deactivates correctly (cycle works end-to-end on iOS 26.5) configurationInvalid is resolved (trailing slash fix + correct usecase name) PIR server deployed at https://dropbet-pir.fly.dev/ (Swift PIR Service, 4 shards, ~208K domains) Usecase: com.dropbet.DropBet.url.filtering Entitlement url-filter-provider confirmed on both app and extension targets Privacy Pass disabled server-side for dev testing The filter is active but never sends /queries to my server — because pirSkipRegistration = NO, iOS requires Privacy Pass via Apple's OHTTP relay before forwarding any PIR queries. My question: what is the exact process to register a PIR server with Apple's OHTTP relay? Is there a form, a DTS request, or a specific Apple program to apply to? I haven't found any documentation on this step. Any help appreciated.
Jun ’26
Reply to NEFilterDataProvider activation on consumer iOS — saveToPreferences fails (code 5), .mobileconfig requires MDM
Hello, Thank you for the hints — they were spot on. The trailing URL problem was indeed our issue: adding a trailing slash to our pirServerURL and pirPrivacyPassIssuerURL resolved the configurationInvalid error entirely. saveToPreferences() now works correctly for both enable and disable. We're now at a point where the URL filter is active (Enabled = YES confirmed in system prefs), but /queries are never reaching our PIR server. Looking at the configuration iOS applies: pirSkipRegistration = NO pirPrivacyProxyFailOpen = NO Our understanding is that with pirSkipRegistration = NO, iOS enforces Privacy Pass authentication via Apple's OHTTP relay before sending any PIR queries — and that relay will only forward requests to servers that have been registered/approved by Apple. Could you confirm this is correct? If so, what is the process to register our PIR server (https://dropbet-pir.fly.dev/) with Apple's OHTTP relay for use with NEURLFilterManager? Is there a form or a specific request channel for this? Thanks again.
Jun ’26
Reply to NEFilterDataProvider activation on consumer iOS — saveToPreferences fails (code 5), .mobileconfig requires MDM
Thank you for your previous guidance — I followed your advice and implemented NEURLFilterManager with the url-filter-provider entitlement (added via Signing & Capabilities → Network Extensions → URL Filter). My PIR server and Privacy Pass issuer are running at https://dropbet-pir.fly.dev, and the /.well-known/private-token-issuer-directory endpoint returns HTTP 200 with a valid response. However, when calling NEURLFilterManager.saveToPreferences() on a development build on my own device (iOS 26.5), I receive: NEURLFilterManager.Error code 1 — configurationInvalid Is this expected for a development build without the OHTTP relay, or does the entitlement require an additional approval step even for development testing? Best regards,
Jun ’26
Reply to NEFilterDataProvider activation on consumer iOS — saveToPreferences fails (code 5), .mobileconfig requires MDM
Thank you for your response. Two follow-up questions: The url-filter-provider capability does not appear in the Capability Requests tab of my developer portal. Could you advise how to request it for com.dropbet.DropBet (App Store ID: 6762567708)? Regarding the OHTTP relay onboarding form (developer.apple.com/contact/request/network-extension-url-filter): does the full PIR server + Privacy Pass infrastructure need to be deployed and running before submitting the form, or can the request be submitted earlier in the process? Best regards
May ’26
Reply to Getting a basic URL Filter to work
Hi everyone, I've been following this thread closely — it's been extremely helpful for getting NEURLFilterManager working. I'm now facing the pirSkipRegistration = NO blocker. My setup: Filter extension activates and deactivates correctly (cycle works end-to-end on iOS 26.5) configurationInvalid is resolved (trailing slash fix + correct usecase name) PIR server deployed at https://dropbet-pir.fly.dev/ (Swift PIR Service, 4 shards, ~208K domains) Usecase: com.dropbet.DropBet.url.filtering Entitlement url-filter-provider confirmed on both app and extension targets Privacy Pass disabled server-side for dev testing The filter is active but never sends /queries to my server — because pirSkipRegistration = NO, iOS requires Privacy Pass via Apple's OHTTP relay before forwarding any PIR queries. My question: what is the exact process to register a PIR server with Apple's OHTTP relay? Is there a form, a DTS request, or a specific Apple program to apply to? I haven't found any documentation on this step. Any help appreciated.
Replies
Boosts
Views
Activity
Jun ’26
Reply to NEFilterDataProvider activation on consumer iOS — saveToPreferences fails (code 5), .mobileconfig requires MDM
Hello, Thank you for the hints — they were spot on. The trailing URL problem was indeed our issue: adding a trailing slash to our pirServerURL and pirPrivacyPassIssuerURL resolved the configurationInvalid error entirely. saveToPreferences() now works correctly for both enable and disable. We're now at a point where the URL filter is active (Enabled = YES confirmed in system prefs), but /queries are never reaching our PIR server. Looking at the configuration iOS applies: pirSkipRegistration = NO pirPrivacyProxyFailOpen = NO Our understanding is that with pirSkipRegistration = NO, iOS enforces Privacy Pass authentication via Apple's OHTTP relay before sending any PIR queries — and that relay will only forward requests to servers that have been registered/approved by Apple. Could you confirm this is correct? If so, what is the process to register our PIR server (https://dropbet-pir.fly.dev/) with Apple's OHTTP relay for use with NEURLFilterManager? Is there a form or a specific request channel for this? Thanks again.
Replies
Boosts
Views
Activity
Jun ’26
Reply to NEFilterDataProvider activation on consumer iOS — saveToPreferences fails (code 5), .mobileconfig requires MDM
Thank you for your previous guidance — I followed your advice and implemented NEURLFilterManager with the url-filter-provider entitlement (added via Signing & Capabilities → Network Extensions → URL Filter). My PIR server and Privacy Pass issuer are running at https://dropbet-pir.fly.dev, and the /.well-known/private-token-issuer-directory endpoint returns HTTP 200 with a valid response. However, when calling NEURLFilterManager.saveToPreferences() on a development build on my own device (iOS 26.5), I receive: NEURLFilterManager.Error code 1 — configurationInvalid Is this expected for a development build without the OHTTP relay, or does the entitlement require an additional approval step even for development testing? Best regards,
Replies
Boosts
Views
Activity
Jun ’26
Reply to NEFilterDataProvider activation on consumer iOS — saveToPreferences fails (code 5), .mobileconfig requires MDM
Thank you for your response. Two follow-up questions: The url-filter-provider capability does not appear in the Capability Requests tab of my developer portal. Could you advise how to request it for com.dropbet.DropBet (App Store ID: 6762567708)? Regarding the OHTTP relay onboarding form (developer.apple.com/contact/request/network-extension-url-filter): does the full PIR server + Privacy Pass infrastructure need to be deployed and running before submitting the form, or can the request be submitted earlier in the process? Best regards
Replies
Boosts
Views
Activity
May ’26