curl --request GET \
--url https://spb.sandbox.lerian.net/v1/str/stuck-operations \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://spb.sandbox.lerian.net/v1/str/stuck-operations"
req, _ := http.NewRequest("GET", 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))
}const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://spb.sandbox.lerian.net/v1/str/stuck-operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://spb.sandbox.lerian.net/v1/str/stuck-operations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"capabilities": {
"hasBudgetReArm": true,
"hasCrashWindowRecovery": true,
"hasDeadlineExpiry": true,
"hasDeadlineSweep": true,
"hasDlqReplay": true,
"hasInboundStuckDetection": true,
"rail": "spb",
"replayNowWired": true,
"supportedVerbs": [
"<string>"
]
},
"correlationId": "<string>",
"items": [
{
"affordances": [
{
"requirement": "DIRECT",
"verb": "RESOLVE",
"reasonCode": "<string>",
"semanticsNote": "<string>"
}
],
"correlation": {
"operationRef": "<string>",
"messageType": "STR0008",
"protocolRef": "<string>"
},
"disposition": "SYSTEM_RETRYING",
"rail": "spb",
"reason": "STUCK_OUTBOUND",
"state": "AWAITING_RESPONSE",
"age": "OVER_15_MIN",
"detail": {}
}
],
"limit": 123,
"nextCursor": "<string>"
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}List stuck operations (operator dashboard)
Returns the cross-rail operator dashboard page of operations needing attention, conformed to the shared recovery vocabulary. Each row carries only the verbs SPB can actually perform on it (a verb SPB cannot perform is absent) and the disposition (‘what happens if I do nothing’). Reconciliation cases are shown with their affordances; pre-case stuck-outbound rows the dispatch sweep is retrying are shown informationally with no affordances. No monetary or position fields are returned.
curl --request GET \
--url https://spb.sandbox.lerian.net/v1/str/stuck-operations \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://spb.sandbox.lerian.net/v1/str/stuck-operations"
req, _ := http.NewRequest("GET", 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))
}const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://spb.sandbox.lerian.net/v1/str/stuck-operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://spb.sandbox.lerian.net/v1/str/stuck-operations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"capabilities": {
"hasBudgetReArm": true,
"hasCrashWindowRecovery": true,
"hasDeadlineExpiry": true,
"hasDeadlineSweep": true,
"hasDlqReplay": true,
"hasInboundStuckDetection": true,
"rail": "spb",
"replayNowWired": true,
"supportedVerbs": [
"<string>"
]
},
"correlationId": "<string>",
"items": [
{
"affordances": [
{
"requirement": "DIRECT",
"verb": "RESOLVE",
"reasonCode": "<string>",
"semanticsNote": "<string>"
}
],
"correlation": {
"operationRef": "<string>",
"messageType": "STR0008",
"protocolRef": "<string>"
},
"disposition": "SYSTEM_RETRYING",
"rail": "spb",
"reason": "STUCK_OUTBOUND",
"state": "AWAITING_RESPONSE",
"age": "OVER_15_MIN",
"detail": {}
}
],
"limit": 123,
"nextCursor": "<string>"
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"correlationId": "req-7a3f9c2e",
"code": "SPB-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Autorizaciones
JWT bearer token issued by the identity provider.
Parámetros de consulta
Attention reason filter (e.g. STUCK_OUTBOUND, AWAITING_RAIL_RESPONSE, RETRY_FAILED, REQUIRES_OPERATOR_ACTION)
Age bucket filter (OVER_5_MIN, OVER_15_MIN, OVER_1_HOUR, OVER_1_DAY)
Canonical operation state filter (e.g. AWAITING_RESPONSE, REQUIRES_OPERATOR_ACTION, RECOVERY_IN_PROGRESS)
Page size (default 50, max 100)
1 <= x <= 100Opaque pagination cursor
Respuesta
OK
Rail-level honest capability manifest (returned inline to save a round trip).
Show child attributes
Show child attributes
Request-scoped correlation identifier echoing X-Request-ID, for pivoting from response to trace.
Stuck-operation rows needing operator attention.
Show child attributes
Show child attributes
Page size applied to this response (max items returned).
Opaque cursor for the next page; absent when exhausted. Presence signals more results, absence signals end-of-list.
¿Esta página le ayudó?

