Engineering Swantide
11/10/2025, 6:17 PMdefault tenant? i'm noticing that in some of my other apis, when I withold tenant,it doesn't append anything to the 'default' tenant only my other one created. Do I always have to enforce default tenant at all times if I only want one?Neelesh Shastry
11/11/2025, 7:35 PMChristie Molloy
11/12/2025, 12:34 PMSlackbot
11/12/2025, 5:15 PMShyamalan Chemmery
11/13/2025, 12:40 AMYilmaz Alizadeh
11/13/2025, 8:58 AMTaha ÇEKEN
11/17/2025, 7:24 AMurl_type is not being saved correctly.
For example, this mapping is saved properly and appears with the regex badge on the frontend:
{
"url": "https?://api.abclojistik.com/test/api/erp/(?:tr|en)/reports/?.*$",
"url_type": "regex",
"http_method": "get",
"resource": "erp_report",
"headers": {},
"action": "read",
"priority": null
}
However, this one gets saved with "url_type": null even though it is also a regex, and the frontend still shows it with the regex badge:
{
"url": "https?://api.abclojistik.com/test/api/hub/(?:tr|en)/orders/?.*$",
"url_type": null,
"http_method": "patch",
"resource": "hub_order",
"headers": {},
"action": "update",
"priority": null
}
When I fetch this configuration from the Permit.io API, it does not indicate that it’s a regex.
I’m not sure if this inconsistency is the root cause, but I’m also getting a PDP crash when calling the allowed_url endpoint.
I’ve attached the PDP crash logs to this message. it gives error about Horizon server. But this error occured after i added new url_mappings.
I need to resolve this issue as soon as possible. Any help would be greatly appreciated.Shyamalan Chemmery
11/17/2025, 9:21 AMYilmaz Alizadeh
11/17/2025, 4:12 PMChuck Chau
11/18/2025, 7:06 AMhorizon.opal_relay_api |WARNING | Could not report uptime status to server: got status code 503 from relay-api. This does not affect the PDP's
operational state or data updates.\n", "record": {"elapsed": {"repr": "0:03:43.577686", "seconds": 223.577686}, "exception": null, "extra": {}, "file": {"name":
"opal_relay_api.py", "path": "/app/horizon/opal_relay_api.py"}, "function": "_run", "level": {"icon": "⚠️", "name": "WARNING", "no": 30}, "line": 183, "message":
"Could not report uptime status to server: got status code 503 from relay-api. This does not affect the PDP's operational state or data updates.", "module":
"opal_relay_api", "name": "horizon.opal_relay_api", "process": {"id": 17, "name": "MainProcess"}, "thread": {"id": 281472985017632, "name": "MainThread"}, "time":
{"repr": "2025-11-18 06:59:00.254824+00:00", "timestamp": 1763449140.254824}}}
Is there any setting I did not set, like the uptime server url?Slackbot
11/18/2025, 12:28 PMStephen Morrison
11/18/2025, 9:13 PMMichael Chen
11/19/2025, 5:43 PMTuấn Anh
11/20/2025, 8:47 AMSeiichi Arai
11/20/2025, 10:33 AMJon Erdman
11/20/2025, 4:02 PMKeith Hickman
11/21/2025, 6:24 PMYilmaz Alizadeh
11/24/2025, 9:46 AMMihiru Kongahage
11/25/2025, 4:01 AM{
"user": {
"key": "user_id1"
},
"action": "create",
"resource": {
"type": "project",
"tenant": "default",
"key": "project_test10"
},
"context": {}
}
Is this RBAC + ReBAC design and resource-instance model valid for Permit.io for this use case? Any other design options/candidates that you'd recommend?
In the first iteration, we'd like to use the cloud PDP exclusively without a local PDP setup. Is there a another approach where this kind of permission model can be supported by exclusively using cloud PDP?Matan Benjio
11/26/2025, 1:54 PMpdp version :`0.0.5`
• Configuration ( Basic):
pdp:
ApiKey: "[OUR_API_KEY]"
port: 7000
logs_forwarder:
enabled: true
debug_mode: false
The Core Problem:
Our PDP is experiencing repeated failures to communicate with your control plane, resulting in HTTP 503 Service Unavailable errors and timeouts when trying to reach <https://opal-relay.api.permit.io/v2/pdp/callback>.
Key Log Evidence:
We've attached two log files from the incident period `[from Nov 17 at 12:30 PM to Nov 18 at 11:30 AM (IST)]`:
1. logs_by_time.csv - Shows the sequence of events.
2. logs_by_group.csv - Groups the repeated messages, showing the high frequency.
The most repeating errors look like this:
- server replied with HTTP 503 Service Unavailable
- Timeout while fetching url: <https://opal-relay.api.permit.io/v2/pdp/callback?retry=0>
This is causing a complete breakdown in our authorization flows. We'd appreciate your help in reviewing these logs and our configuration to understand why our local PDP cannot maintain a stable connection to your servers.
Thanks in advance for your help.
Cyclops security team.Jaieu Sheil
11/26/2025, 10:00 PM{
"components": {
"horizon": {
"details": {
"watchdog": {
"message": "Watchdog status when direct Horizon health check was not Ok.",
"status": "error"
}
},
"error": "Failed to connect to Horizon: error sending request for url (<http://0.0.0.0:7001/healthy>)",
"status": "error"
},
"opa": {
"error": "Failed to connect to OPA: error sending request for url (<http://localhost:8181/health>)",
"status": "error"
}
},
"status": "error"
}
Is there something wrong/missing in my configs?Ester Hatchuel
11/27/2025, 6:19 AMMichał Wójcik
11/28/2025, 11:03 AM2025-11-28 08:48:12.202Z fga-api fail: Sea.Fga.Api.Services.SeedDataGenerationService[0]
2025-11-28 08:48:12.202Z fga-api Failed during test data generation
2025-11-28 08:48:12.202Z fga-api HTTP Response:
2025-11-28 08:48:12.202Z fga-api
2025-11-28 08:48:12.202Z fga-api {
2025-11-28 08:48:12.202Z fga-api "id": "8d98906253db42908260fb8696cb9781",
2025-11-28 08:48:12.202Z fga-api "title": "You have exceeded the rate limit",
2025-11-28 08:48:12.202Z fga-api "support_link": "<https://permit-io.slack.com/ssb/redirect>",
2025-11-28 08:48:12.202Z fga-api "error_code": "RATE_LIMITED",
2025-11-28 08:48:12.202Z fga-api "message": "We are sorry for the inconvenience, You have exceeded the rate limit for this resource.
Please try again later.
If the issue keeps happening, contact our support on Slack for further guidance.",
2025-11-28 08:48:12.202Z fga-api "additional_info": null
2025-11-28 08:48:12.202Z fga-api }
2025-11-28 08:48:12.202Z fga-api
2025-11-28 08:48:12.202Z fga-api PermitSDK.OpenAPI.Models.PermitApiException: The HTTP status code of the response was not expected (429).
2025-11-28 08:48:12.202Z fga-api
2025-11-28 08:48:12.202Z fga-api Status: 429
2025-11-28 08:48:12.202Z fga-api Response:
2025-11-28 08:48:12.202Z fga-api {
2025-11-28 08:48:12.202Z fga-api "id": "8d98906253db42908260fb8696cb9781",
2025-11-28 08:48:12.202Z fga-api "title": "You have exceeded the rate limit",
2025-11-28 08:48:12.202Z fga-api "support_link": "<https://permit-io.slack.com/ssb/redirect>",
2025-11-28 08:48:12.202Z fga-api "error_code": "RATE_LIMITED",
2025-11-28 08:48:12.202Z fga-api "message": "We are sorry for the inconvenience, You have exceeded the rate limit for this resource.
Please try again later.
If the issue keeps happening, contact our support on Slack for further guidance.",
2025-11-28 08:48:12.202Z fga-api "additional_info": null
2025-11-28 08:48:12.202Z fga-api }
2025-11-28 08:48:12.202Z fga-api
2025-11-28 08:48:12.202Z fga-api at PermitSDK.OpenAPI.PermitClient.Create_relationship_tupleAsync(
String proj_id,
String env_id,
RelationshipTupleCreate body,
CancellationToken cancellationToken)
2025-11-28 08:48:12.202Z fga-api at PermitSDK.Api.CreateRelationshipTuple(RelationshipTupleCreate relationshipTuple)
2025-11-28 08:48:12.202Z fga-api at Sea.Fga.Permit.Services.PdpService.<>c__DisplayClass20_0.<<AddRelationship>b__0>d.MoveNext()
in /app/src/BE/Sea.Fga.Permit/Services/PdpService.cs:line 402
Pdp logs:
2025-11-28 09:21:50.791Z pdp 2025-11-28T09:21:50.790972+0000 | opal_client.data.fetcher |ERROR | Timeout while fetching url: <https://opal-relay.api.permit.io/v2/pdp/callback?retry=0>
2025-11-28 09:21:50.791Z pdp Traceback (most recent call last):
2025-11-28 09:21:50.791Z pdp File "/usr/local/lib/python3.10/asyncio/locks.py", line 214, in wait
2025-11-28 09:21:50.791Z pdp await fut
2025-11-28 09:21:50.791Z pdp asyncio.exceptions.CancelledError
2025-11-28 09:21:50.791Z pdp
2025-11-28 09:21:50.791Z pdp During handling of the above exception, another exception occurred:
2025-11-28 09:21:50.791Z pdp
2025-11-28 09:21:50.791Z pdp Traceback (most recent call last):
2025-11-28 09:21:50.791Z pdp File "/usr/local/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
2025-11-28 09:21:50.791Z pdp return fut.result()
2025-11-28 09:21:50.791Z pdp asyncio.exceptions.CancelledError
2025-11-28 09:21:50.791Z pdp
2025-11-28 09:21:50.791Z pdp The above exception was the direct cause of the following exception:
2025-11-28 09:21:50.791Z pdp
2025-11-28 09:21:50.791Z pdp Traceback (most recent call last):
2025-11-28 09:21:50.791Z pdp File "/usr/local/lib/python3.10/site-packages/opal_client/data/fetcher.py", line 75, in handle_url
2025-11-28 09:21:50.791Z pdp response = await self._engine.handle_url(url, config=config)
2025-11-28 09:21:50.791Z pdp File "/usr/local/lib/python3.10/site-packages/opal_common/fetcher/engine/fetching_engine.py", line 116, in handle_url
2025-11-28 09:21:50.791Z pdp await asyncio.wait_for(wait_event.wait(), timeout)
2025-11-28 09:21:50.791Z pdp File "/usr/local/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
2025-11-28 09:21:50.791Z pdp raise exceptions.TimeoutError() from exc
2025-11-28 09:21:50.791Z pdp asyncio.exceptions.TimeoutError
2025-11-28 09:21:50.791Z pdp 2025-11-28T09:21:50.791548+0000 | opal_client.callbacks.reporter |ERROR | Failed to send report to <https://opal-relay.api.permit.io/v2/pdp/callback?retry=0>, info=TimeoutError()
1. What are the exact rate limits for the Pro plan and for the Enterprise plan?
2. Are the rate limits applied per endpoint, or are they global (e.g., shared across all API calls or per IP address)?
3. Is there an overload or a bulk-insert option for relationship tuples? We already use all available bulk operations in the API (batch size 1000), but relationship can't find bulk for relationship.
4. Is it possible to temporarily increase the rate limit for our project/environment?
Our mock data generation is fully synchronous (no concurrency), yet we still hit rate limits, making performance testing impossible at the moment.Jakub Urban
11/28/2025, 3:16 PMtf import the current production state, but that is not supported by the provider. Is there a chance this could be implemented (I'd say I'd be useful in general). Or do you have any other suggestion how to start managing existing resources?Girija shankar
12/02/2025, 9:46 AMYorrick Elzinga
12/02/2025, 2:22 PMUtham Prabhu
12/03/2025, 6:52 AMview, create, edit, and audit. We don’t want to map all 300+ API endpoints individually inside Permit. Instead, we want Permit to manage only feature-level permissions, and then our Django backend will map API routes to those permissions internally.
We also want to dynamically generate the sidebar based on the permissions Permit returns, so that each user only sees the modules they are allowed to access.
One thing we need guidance on: How do we best structure resources and resource sets in Permit so that we can group permissions cleanly (ex: Leaves-related permissions → Leaves sidebar items, Projects → Project sidebar items) and also keep a clean mapping between features and the many API endpoints behind them? Basically, Permit will be the single source of truth for “feature permissions,” and Django will handle API-level mapping internally — but we want to know the neatest way to aggregate and organize these resources inside Permit so that the structure scales well.ROMAN VAZQUEZ MACIAS
12/03/2025, 6:52 PMROMAN VAZQUEZ MACIAS
12/03/2025, 6:58 PMROMAN VAZQUEZ MACIAS
12/03/2025, 7:15 PM