Esta é a documentação da Apigee e da Apigee híbrida.
    Confira a documentação da Apigee Edge.
  
ExecutionFailed
Código de erro
steps.jsonthreatprotection.ExecutionFailed
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: error_description at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Tipos de erros e possíveis causas
A política JSONThreatProtection pode gerar muitos tipos diferentes de erros ExecutionFailed. A tabela abaixo lista os tipos diferentes de erros e as possíveis causas:
| Tipo de erro | Causa | 
| Comprimento do nome de entrada do objeto excedido | O comprimento máximo de string permitido no nome de entrada de um objeto foi excedido. | 
| Contagem de entradas de objeto excedida | O número máximo de entradas permitidas em um objeto foi excedido. | 
| Contagem de elementos da matriz excedida | O número máximo de elementos permitidos em uma matriz foi excedido. | 
| Profundidade de contêiner excedida | A profundidade aninhada permitida foi excedida. | 
| Comprimento do valor de string excedido | O comprimento máximo permitido para um valor de string foi excedido. | 
| Objeto JSON inválido | O payload JSON de entrada é inválido. | 
Comprimento do nome de entrada do objeto excedido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry name length at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
          Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
          Exceeded object entry name length at line 2",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
        }
    }
}
Causa
Esse erro ocorrerá se o payload da mensagem de entrada especificado pelo elemento <Source> contiver um objeto JSON com um nome de propriedade que exceda o comprimento máximo especificado no elemento <ObjectEntryNameLength>.
Por exemplo, se o elemento <ObjectEntryNameLength> for especificado como "5" na política, mas o payload da mensagem de entrada tiver uma propriedade JSON com um nome maior que cinco caracteres, esse erro será exibido.
Diagnóstico
- Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha em que o nome de entrada maior que o especificado ocorre. Por exemplo, na mensagem de erro a seguir, o nome da política JSONThreatProtection é - JSON-Threat-Protection-1e o número da linha no payload é "2".- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
- Analise a política identificada na etapa 1 e anote o valor especificado no elemento - <ObjectEntryNameLength>.- Por exemplo, na política JSONThreatProtection a seguir, - <ObjectEntryNameLength>é definido como- 5:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>12</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>5</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
- Analise o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o comprimento do nome do objeto é maior que o valor especificado no elemento - <ObjectEntryNameLength>(identificado na etapa 2). Se o comprimento do nome do objeto exceder esse número, essa será a causa do erro.- Veja um exemplo de payload de entrada: - { "number" : 500, "string" : "text" }- O payload JSON mostrado acima tem uma propriedade chamada - numberna linha 2, que tem seis caracteres (o comprimento do nome é 6). Como o comprimento do nome do objeto é maior que 5 (o valor especificado para o elemento- <ObjectEntryNameLength>), você verá o seguinte erro:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham nomes de entrada de objeto maiores que o valor definido, a mensagem de erro é esperada. Nesse caso, nenhuma outra ação é necessária.
No entanto, se você determinar que nomes de entrada de objeto maiores podem ser especificados no payload sem qualquer consequência, modifique o <ObjectEntryNameLength> para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir nomes de objeto de até 10 caracteres, modifique a política JSONThreatProtection da seguinte maneira:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
    <DisplayName>JSON Threat Protection-1</DisplayName>
    <Properties/>
    <ArrayElementCount>3</ArrayElementCount>
    <ContainerDepth>12</ContainerDepth>
    <ObjectEntryCount>5</ObjectEntryCount>
    <ObjectEntryNameLength>10</ObjectEntryNameLength>
    <Source>request</Source>
    <StringValueLength>50</StringValueLength>
</JSONThreatProtection>
Contagem de entradas de objeto excedida
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry count at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
          Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
          Exceeded object entry count at line 7",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
        }
    }
}
Causa
Esse erro ocorrerá se o payload da mensagem de entrada especificado pelo elemento <Source> contiver um objeto JSON que contenha mais entradas (propriedades) do que o valor especificado no elemento <ObjectEntryCount> da política.
Por exemplo, se o elemento <ObjectEntryCount> for "5", mas o payload JSON de entrada tiver mais de cinco entradas, esse erro será gerado.
Diagnóstico
- Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha em que a contagem de entradas é excedida. Por exemplo, na seguinte mensagem de erro, o nome da política é - JSON-Threat-Protection-1e o número da linha no payload é- 7:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
- Anote o valor especificado no elemento - <ObjectEntryCount>da política (identificado na etapa 1).- No exemplo de política a seguir, - <ObjectEntryCount>está definido como- 5:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>12</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>6</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
- Verifique o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o número de entidades no payload é maior que o valor especificado para o elemento - <ObjectEntryCount>(identificado na etapa 2). Se o número de objetos excede a contagem de entradas de objeto, essa é a causa do erro.- Veja um exemplo de payload de entrada: - { "name" : "John", "id" : 234687, "age" : 31, "city" : "New York", "country" : "USA", "company" : "Google" }- No payload JSON mostrado acima, a sexta entrada ocorre na linha no 7 (empresa). Como a contagem das entradas de objeto no payload JSON de entrada é maior que cinco (o valor especificado para o elemento - <ObjectEntryCount>), você recebe o seguinte erro:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham um número de entradas de objeto que exceda um limite específico, a mensagem de erro é esperada. Nesse caso, você não precisa fazer nada.
No entanto, se você determinar que mais entradas de objeto podem ser incluídas no payload sem nenhuma consequência, modifique <ObjectEntryCount> para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir até 10 entradas de objeto, modifique a política JSONThreatProtection da seguinte maneira:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
    <DisplayName>JSON Threat Protection-1</DisplayName>
    <Properties/>
    <ArrayElementCount>3</ArrayElementCount>
    <ContainerDepth>12</ContainerDepth>
    <ObjectEntryCount>10</ObjectEntryCount>
    <ObjectEntryNameLength>6</ObjectEntryNameLength>
    <Source>request</Source>
    <StringValueLength>50</StringValueLength>
</JSONThreatProtection>
Contagem de elementos da matriz excedida
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded array element count at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
          Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
          Exceeded array element count at line 3",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
        }
    }
}
Causa
Esse erro ocorrerá se o payload da mensagem de entrada especificado pelo elemento <Source> contiver uma matriz JSON com um número de elementos maior que o número especificado no elemento <ArrayElementCount> da política.
Por exemplo, se o elemento <ArrayElementCount> for especificado como 3, mas o payload de entrada tiver uma matriz JSON com mais de três elementos, esse erro será gerado.
Diagnóstico
- Examine a mensagem de erro para identificar o nome da política e o número da linha em que o comprimento da matriz foi excedido. Por exemplo, na seguinte mensagem de erro, o nome da política é - JSON-Threat-Protection-1e o número da linha no payload é- 3:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
- Anote o valor especificado do elemento - <ArrayElementCount>da política (identificado na etapa 1).- No exemplo da política JSONThreatProtection a seguir, - <ArrayElementCount>está definido como- 3:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>12</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>6</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
- Analise o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se a matriz especificada tem uma quantia maior que o número especificado no elemento - <ArrayElementCount>(identificado na etapa 2). Se o número de elementos da matriz exceder a contagem, essa será a causa do erro.- Veja um exemplo de payload de entrada: - { "name":"Ford", "models":[ "Mustang", "Endeavour", "Fiesta", "EcoSport", "Focus" ] }- O payload JSON mostrado acima tem cinco elementos na matriz chamada - modelsna linha 3. Como o número de elementos da matriz é maior que 3 (o valor especificado para o elemento- <ArrayElementCount>), você receberá o seguinte erro:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham um limite de contagem de matriz específico, a mensagem de erro é esperada. Nesse caso, não é necessário fazer nada.
No entanto, se você determinar que é permitido um número maior de elementos em uma matriz, modifique <ArrayElementCount> para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir até cinco elementos de matriz, modifique a política da seguinte maneira:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
    <DisplayName>JSON Threat Protection-1</DisplayName>
    <Properties/>
    <ArrayElementCount>5</ArrayElementCount>
    <ContainerDepth>12</ContainerDepth>
    <ObjectEntryCount>5</ObjectEntryCount>
    <ObjectEntryNameLength>6</ObjectEntryNameLength>
    <Source>request</Source>
    <StringValueLength>50</StringValueLength>
</JSONThreatProtection>
Profundidade de contêiner excedida
Corpo da resposta de erro
O tráfego do ambiente de execução retorna um código de resposta 500 com o seguinte erro:
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded container depth at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
          Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
          Exceeded container depth at line 5",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
        }
    }
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source> contiver um objeto JSON que contenha elementos JSON com uma profundidade de contêiner que excede a profundidade máxima do contêiner especificada no elemento <ContainerDepth> da política. A profundidade de contêiner é a profundidade aninhada máxima permitida para elementos JSON. Por exemplo, uma matriz que contém um objeto com outro objeto resultaria em uma profundidade de contenção 3.
Por exemplo, se o elemento <ContainerDepth> for 3, mas o payload de entrada tiver uma profundidade de contêiner que exceda esse limite, esse erro será gerado.
Diagnóstico
- Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha em que a profundidade de contêiner foi excedida. Por exemplo, na mensagem de erro a seguir, o nome da política é - JSON-Threat-Protection-1e o número da linha no payload é- 5.- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
- Anote o valor especificado para o elemento - <ContainerDepth>(identificado na etapa 1).- No exemplo da política JSONThreatProtection a seguir, - <ContainerDepth>está definido como- 5:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
- Examine o número da linha específica (identificado na etapa 1) do payload de entrada e verifique se a profundidade de contêiner no payload é maior que o valor especificado no elemento - <ContainerDepth>(identificado na etapa 2). Se a profundidade de contêiner exceder o valor, essa é a causa do erro.- Veja um exemplo de payload de entrada: - { "ContainerDepth2":[ { "ContainerDepth4":[ { "ContainerDepth6":[ "1", "2" ] } ] } ] }- O payload JSON mostrado acima tem uma profundidade de contêiner de "6" na linha 5. Como a profundidade é maior que cinco, o valor especificado no elemento - <ContainerDepth>da política JSONThreatProtection, você receberá o seguinte erro:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads com profundidades de contêiner excedam o valor especificado, a mensagem de erro é esperada. Nesse caso, não é necessário fazer nada.
No entanto, se você determinar que profundidades de contêiner maiores são aceitáveis, modifique o <ContainerDepth> para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir profundidade de contêiner de até 10, modifique a política da seguinte maneira:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
    <DisplayName>JSON Threat Protection-1</DisplayName>
    <Properties/>
    <ArrayElementCount>3</ArrayElementCount>
    <ContainerDepth>10</ContainerDepth>
    <ObjectEntryCount>5</ObjectEntryCount>
    <ObjectEntryNameLength>20</ObjectEntryNameLength>
    <Source>request</Source>
    <StringValueLength>50</StringValueLength>
</JSONThreatProtection>
Comprimento do valor de string excedido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded string value length at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
          Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
          Exceeded string value length at line 3",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
        }
    }
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source> contiver elementos JSON que tenham valores com mais caracteres do que o permitido pelo elemento <StringValueLength>.
Por exemplo, se o elemento <StringValueLength> estiver definido como 50 na política, mas o payload de entrada tiver um ou mais elementos com valores que contenham mais de 50 caracteres, esse erro será gerado.
Diagnóstico
- Analise a mensagem de erro para identificar o nome da política e o número da linha em que o comprimento da string é excedido. No exemplo a seguir, o nome da política é - JSON-Threat-Protection-1 andno payload- 3.- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
- Anote o valor especificado do elemento - <StringValueLength>no (identificado na etapa 1).- No exemplo da política JSONThreatProtection a seguir, - <StringValueLength>está definido como- 50:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
- Analise o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o comprimento do valor é maior que o número de caracteres especificados para o elemento - <StringValueLength>(identificado na etapa 2). Se o comprimento do valor exceder o limite, essa será a causa do erro.- Veja um exemplo de payload de entrada: - { "Country": "New Zealand", "Place Name": "Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu" }- O payload JSON mostrado acima tem um objeto chamado - Place Namecujo valor- Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahutem 85 caracteres na linha 3. Como o comprimento do valor é maior que 50, o valor especificado no elemento- <StringValueLength>, o seguinte erro é exibido:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham valores que excedam um comprimento de string específico, a mensagem de erro é esperada. Nesse caso, não é necessário fazer nada.
No entanto, se você determinar que um valor comprimento de maior pode ser especificado no payload, modifique o <StringValueLength> para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir um valor de até 90, modifique a política da seguinte maneira:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
    <DisplayName>JSON Threat Protection-1</DisplayName>
    <Properties/>
    <ArrayElementCount>3</ArrayElementCount>
    <ContainerDepth>5</ContainerDepth>
    <ObjectEntryCount>5</ObjectEntryCount>
    <ObjectEntryNameLength>20</ObjectEntryNameLength>
    <Source>request</Source>
    <StringValueLength>90</StringValueLength>
</JSONThreatProtection>
Objeto JSON inválido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: string: at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
          Execution failed. reason: Expecting : at line 3",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
        }
    }
}
Causa
Esse erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
na política JSONThreatProtection não é um objeto JSON válido.
Diagnóstico
- Analise a mensagem de erro para identificar o nome da política e o número da linha em que o erro ocorreu. No exemplo a seguir, o nome da política é - JSON-Threat-Protection-1 andno payload- 2.- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
- Examine o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o objeto JSON que foi transmitido no payload é, na verdade, um objeto JSON válido. - Veja um exemplo de payload de entrada: - { "Longitude": 6.11499, "Latitude" 50.76891 }- No payload JSON mostrado acima, a linha 3 não tem - ":"(dois-pontos). Como não é um objeto JSON válido, você receberá este erro:- JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
Resolução
Verifique se um payload JSON de entrada válido é transmitido para qualquer proxy da API que inclua a política JSONThreatProtection.
Para o exemplo descrito acima, modifique o payload JSON da seguinte maneira:
{
    "Longitude": 6.11499,
  "Latitude" : 50.76891
}
SourceUnavailable
Código de erro
steps.jsonthreatprotection.SourceUnavailable
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]:: Source[var_name] is not available" "detail": { "errorcode": "steps.jsonthreatprotection.SourceUnavailable" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]::
          Source requests is not available",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.SourceUnavailable"
        }
    }
}
Causa
Este erro ocorre se a variável message especificada no elemento <Source> da política JSONThreatProtection:
- estiver fora do escopo (não disponível no fluxo específico em que a política está sendo executada);
- não for um dos valores válidos request,responseoumessage.
Por exemplo, esse erro ocorrerá se o elemento <Source> na política estiver definido como uma
variável que não exista no fluxo em que a política é executada.
Diagnóstico
- Identifique o nome da política e o nome da variável de origem da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política é - JSON-Threat-Protection-1e a variável de origem é- requests:- JSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
- Examine o valor especificado para o elemento - <Source>identificado na etapa 1.- No exemplo da política JSONThreatProtection a seguir, o elemento - <Source>está definido como- requests.- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>requests</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>- Os valores válidos para o elemento - <Source>são- request,- responseou- message. Como as solicitações não são um valor válido e não existem no fluxo em que a política está sendo executada, você receberá o erro:- JSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
Resolução
Verifique se a variável definida no elemento <Source> da política JSONThreatProtection com falha está definida como request, response ou message e existe no fluxo em que a política é executada.
Para corrigir a política JSONThreatProtection de exemplo mostrada acima, modifique o elemento <Source> para usar a variável request, porque ela existe no fluxo de solicitação:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
    <DisplayName>JSON Threat Protection-1</DisplayName>
    <Properties/>
    <ArrayElementCount>3</ArrayElementCount>
    <ContainerDepth>5</ContainerDepth>
    <ObjectEntryCount>5</ObjectEntryCount>
    <ObjectEntryNameLength>20</ObjectEntryNameLength>
    <Source>request</Source>
    <StringValueLength>50</StringValueLength>
</JSONThreatProtection>
NonMessageVariable
Código de erro
steps.jsonthreatprotection.NonMessageVariable
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Variable var_name does not resolve to a Message" "detail": { "errorcode": "steps.jsonthreatprotection.NonMessageVariable" } } }
Exemplo de corpo da resposta de erro
{
    "fault": {
        "faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
          Variable message.content does not resolve to a Message",
        "detail": {
            "errorcode": "steps.jsonthreatprotection.NonMessageVariable"
        }
    }
}
Causa
Esse erro ocorre se o elemento <Source> na política JSONThreatProtection estiver
definido como uma variável que não seja do tipo message.
As variáveis do tipo Message representam solicitações e respostas HTTP completas. A solicitação de variáveis de fluxo, a resposta e a mensagem integradas da Apigee são do tipo mensagem. Para saber mais sobre variáveis de mensagem, consulte a Referência de variáveis.
Diagnóstico
- Identifique o nome da política e o nome da variável de origem JSONThreatProtection na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política é - JSON-Threat-Protection-1e a variável de origem é- message.content:- JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
- Examine o elemento - <Source>da política JSONThreatProtection (identificado na etapa 1).- No exemplo da política JSONThreatProtection a seguir, - <Source>está definido como- message.contentem vez de- message:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>message.content</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>- Como - message.contentnão é do tipo mensagem, você verá o erro:- JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
Resolução
Verifique se o elemento <Source> na política JSONThreatProtection com falha está
configurado como uma variável de fluxo de tipo message existente no fluxo em que a política é executada.
Para corrigir a política, modifique o elemento <Source> para especificar uma variável
que seja do tipo mensagem. Por exemplo, no JSONThreatProtection com falha,
especifique o elemento <Source> como message:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
    <DisplayName>JSON Threat Protection-1</DisplayName>
    <Properties/>
    <ArrayElementCount>3</ArrayElementCount>
    <ContainerDepth>5</ContainerDepth>
    <ObjectEntryCount>5</ObjectEntryCount>
    <ObjectEntryNameLength>20</ObjectEntryNameLength>
    <Source>message</Source>
    <StringValueLength>50</StringValueLength>
</JSONThreatProtection>