curl --request POST \
--url https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Report Connection Auth Error
Report that the provider rejected the stored credential for the calling user’s connection.
Called by tool-router when an upstream provider rejects a served OAuth token mid-use.
The service first forces one refresh; if it succeeds the connection stays
connected. The caller’s connection flips to a reconnect prompt only when the
provider refuses that refresh (the authorization is then dead for every
connection using it), or when no refresh token exists and the token is older
than the service’s cooldown, which changes only the caller’s own connection.
A caller-supplied rejected_fingerprint matching the stored token on a
credential with no refresh token skips the cooldown and retires the shared
authorization, which also affects service-account connections that borrow it.
A report that cannot be acted on (a just-issued token, a lost refresh race, a transient failure) changes nothing. The response is always 204 once the connection is found and never says which outcome occurred.
curl --request POST \
--url https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/registry/v1/servers/{server_id}/connection/auth-error")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
A Barndoor API key, sent as Authorization: Bearer <key>. Keys are prefixed bdai_ and are opaque — do not attempt to decode one. Interchangeable with an OAuth 2.0 access token.
Path Parameters
Query Parameters
64^[0-9a-f]{64}$Response
Successful Response