Dicionário de códigosCode dictionary
Cada falha tem um número DX-CDNN que não muda de significado: o milhar é a classe (o que fazer a seguir), a centena o domínio (onde aconteceu), e os dois últimos a falha; 00 é a própria classe. A CLI imprime-o na linha de erro — error[DX-4501] no such VM: dev — e delonix explain DX-4501 diz o resto. Decidido no ADR-0043.
Every failure has a DX-CDNN number that never changes meaning: the thousands digit is the class (what to do next), the hundreds the domain (where it happened), and the last two the failure; 00 is the class itself. The CLI prints it on the error line — error[DX-4501] no such VM: dev — and delonix explain DX-4501 says the rest. Decided in ADR-0043.
| Código | Classe | Domínio | Saída | Mensagem, significado, o que fazer |
|---|---|---|---|---|
DX-0000 | sucesso | motor | 0 | sucesso O comando fez o que lhe foi pedido. Nada. |
DX-1000 | argumento inválido | motor | 1 | argumento inválido Um argumento, o valor de uma flag ou um campo do manifesto não é aceitável. A mensagem diz qual. Corrige o argumento que a mensagem nomeia e corre o comando outra vez. |
DX-1101 | argumento inválido | container | 1 | nome de container ambíguo O nome existe em mais de um namespace, por isso não diz qual é o container. Qualifica-o como <namespace>/<nome>. |
DX-1102 | argumento inválido | container | 1 | limite de memória inválido O valor de --memory, ou um resources.limits.memory do Kubernetes, não é uma contagem de bytes que este motor entenda. Usa bytes (67108864) ou um sufixo (64M, 64Mi, 1G, 1Gi). |
DX-1103 | argumento inválido | container | 1 | limite de CPU inválido O valor de --cpus, ou um resources.limits.cpu do Kubernetes, não é um número de núcleos que este motor entenda. Usa um número decimal de núcleos (0.5, 2); millicores (500m) são uma grafia do Kubernetes que esta flag não aceita. |
DX-1104 | argumento inválido | container | 1 | peso de cgroup inválido Um valor de peso (--cpu-weight, --io-weight) está fora do intervalo do cgroup v2. Passa um peso entre 1 e 10000. |
DX-1105 | argumento inválido | container | 1 | conjunto de CPU inválido O valor de --cpuset não se interpreta como uma lista de CPUs (ex.: 0-3,6). Passa uma lista de números ou intervalos de CPU separados por vírgulas. |
DX-1106 | argumento inválido | container | 1 | argumento de comando inválido Um argumento do comando ou do entrypoint contém um byte NUL, que não pode ser passado ao execve. Remove o byte NUL embutido no argumento que a mensagem nomeia. |
DX-1107 | argumento inválido | container | 1 | comando vazio O container não tem comando para correr: nem o ENTRYPOINT/CMD da imagem nem um comando explícito foram dados. Passa um comando, ou usa uma imagem com ENTRYPOINT ou CMD. |
DX-1108 | argumento inválido | container | 1 | sem processos no container Uma operação que precisa de pelo menos um processo vivo (renice) não encontrou nenhum. Verifica que o container está mesmo a correr (`delonix container ps`). |
DX-1109 | argumento inválido | container | 1 | caminho de montagem ao vivo inseguro Um destino de container update --volume-add/--volume-rm é recusado pela mesma verificação de segurança de caminho que os bind mounts usam. Usa um caminho de destino que fique dentro do próprio rootfs do container. |
DX-1110 | argumento inválido | container | 1 | origem da montagem ao vivo não existe O caminho do host dado a um bind-mount ao vivo (container update --volume-add) não existe. Verifica que o caminho de origem existe no host antes de o montar ao vivo. |
DX-1111 | argumento inválido | container | 1 | o container partilha a namespace de montagem do host Foi pedida uma montagem/desmontagem ao vivo a um container sem namespace de montagem própria para mudar. Este container não aceita uma mudança de volume ao vivo; pára-o e recria-o se for preciso uma. |
DX-1112 | argumento inválido | container | 1 | montagem ao vivo falhou O auxiliar bifurcado que faz a montagem ao vivo dentro das namespaces do container a correr saiu com falha, ou foi interrompido. Lê o código de saída na mensagem; repete o volume-add, ou reinicia o container. |
DX-1113 | argumento inválido | container | 1 | desmontagem ao vivo falhou O auxiliar bifurcado que faz a desmontagem ao vivo dentro das namespaces do container a correr não teve sucesso. Repete o volume-rm, ou reinicia o container. |
DX-1114 | argumento inválido | container | 1 | nome de dispositivo CDI inválido Um valor de --device que nomeia um dispositivo qualificado CDI não é vendor.com/class=name. Usa a forma vendor.com/class=name (ex.: nvidia.com/gpu=0). |
DX-1115 | argumento inválido | container | 1 | colocação no cgroup do kubelet exige o motor como root Colocar um container na hierarquia de cgroup que um RunPodSandbox do CRI nomeia exige privilégios que o rootless, ou um processo já dentro de uma namespace, não tem. Corre o servidor CRI como root, ou não peças um cgroup parent do kube em rootless. |
DX-1201 | argumento inválido | volume | 1 | nome de volume inválido O nome de um volume só pode ter letras, dígitos, ponto, hífen e sublinhado, e não pode começar por ponto. Escolhe um nome feito de [A-Za-z0-9._-] que não comece por ponto. |
DX-1202 | argumento inválido | volume | 1 | volume de rede sem dispositivo Foi pedido um volume nfs, cifs ou webdav sem a partilha a montar. Indica a partilha: --opt server=<host> --opt share=<caminho>. |
DX-1203 | argumento inválido | volume | 1 | registo de volume de rede sem dispositivo Um volume de rede está registado mas o registo perdeu o dispositivo a montar. Recria o volume com o seu servidor e partilha. |
DX-1204 | argumento inválido | volume | 1 | nome de snapshot inválido O nome de um snapshot só pode ter letras, dígitos, ponto, hífen e sublinhado, sem barra nem ponto duplo. Escolhe um nome feito de [A-Za-z0-9._-]. |
DX-1205 | argumento inválido | volume | 1 | quota rígida num volume com dados Uma quota rígida (loopback) só pode ser posta num volume vazio: esconderia os dados que já lá estão. Cria o volume com --quota, ou esvazia-o primeiro. |
DX-1206 | argumento inválido | volume | 1 | quota abaixo da utilização actual A nova quota é menor do que o que o volume já guarda. Liberta espaço no volume primeiro, ou pede uma quota maior. |
DX-1207 | argumento inválido | volume | 1 | volume em uso Reduzir uma quota exige o volume desmontado, e há um container a usá-lo. Pára os containers que o montam e depois muda a quota. |
DX-1208 | argumento inválido | volume | 1 | nome de volume ambíguo O nome é ao mesmo tempo um volume no namespace do workload e um volume global. Muda o nome de um dos dois. |
DX-1209 | argumento inválido | volume | 1 | especificação de volume inválida Um valor de -v não tem a forma origem:/destino[:opções]. Escreve-o como origem:/destino, opcionalmente com :ro. |
DX-1210 | argumento inválido | volume | 1 | opção de bind não suportada O terceiro campo de -v nomeia uma opção que este motor não implementa (SELinux :z/:Z, :U). Usa :ro, :rw ou uma opção de propagação (:rprivate, :rslave, :rshared). |
DX-1211 | argumento inválido | volume | 1 | o destino da montagem não é absoluto O caminho dentro do container tem de começar por barra. Escreve o destino como caminho absoluto, por exemplo /data. |
DX-1212 | argumento inválido | volume | 1 | quota abaixo do mínimo do TrueNAS O TrueNAS recusa uma quota abaixo de 1 GiB num dataset; pedir menos não arredonda para cima, é recusado. Pede pelo menos 1 GiB, ou tira a quota para deixar o dataset sem limite. |
DX-1213 | argumento inválido | volume | 1 | url do TrueNAS inválido O url do alvo de provisionamento não tem esquema, tem um esquema não suportado, ou não nomeia um host. Escreve-o como https://<host>[:porto], sem caminho. |
DX-1214 | argumento inválido | volume | 1 | credencial no url do TrueNAS O url leva um utilizador ou password (userinfo), uma credencial escondida no manifesto em vez de um kind: Secret. Tira o userinfo e passa a credencial como apiKeySecret ou passwordSecret. |
DX-1215 | argumento inválido | volume | 1 | credencial sobre http simples Enviar uma chave de API ou password para um alvo TrueNAS em http:// simples põe-na na rede em claro. Usa https://, com insecureTLS: true se a appliance servir o seu próprio certificado auto-assinado. |
DX-1216 | argumento inválido | volume | 1 | nome de dataset TrueNAS inválido Um nome de dataset ZFS tem de ser <pool>/<nome>, sem '..', sem componente vazio e sem '-' inicial. Escreve o dataset como <pool>/<nome>, por exemplo tank/projects. |
DX-1301 | argumento inválido | rede | 1 | chave WireGuard inválida Uma string dada como chave WireGuard não tem 44 caracteres de base64 a terminar em '='. Passa uma chave exactamente como o `wg genkey`/`wg pubkey` a produziu. |
DX-1302 | argumento inválido | rede | 1 | configuração CNI inválida Um ficheiro de config/conflist CNI, ou o input de um plugin construído a partir dele, não é JSON válido ou tem a forma errada. Verifica o ficheiro `*.conflist`/`*.conf` que a mensagem nomeia; valida-o com um linter de JSON. |
DX-1303 | argumento inválido | rede | 1 | não foi possível codificar o input de um plugin CNI Construir o JSON que um plugin CNI lê no stdin falhou. Verifica a entrada do plugin no conflist à procura de um valor que o JSON não consiga representar. |
DX-1304 | argumento inválido | rede | 1 | resultado de plugin CNI inválido O próprio stdout de um plugin CNI não fez parse como o resultado que a especificação CNI espera. Verifica que o binário do plugin que a mensagem nomeia é a versão que o conflist deste host espera. |
DX-1305 | argumento inválido | rede | 1 | plugin CNI não encontrado Um plugin nomeado na cadeia CNI (ou o seu `ipam.type`) não é um binário em CNI_PATH. Instala o binário do plugin que a mensagem nomeia em CNI_PATH (por omissão /opt/cni/bin). |
DX-1306 | argumento inválido | rede | 1 | chave de sysctl de netns inválida Uma chave de sysctl dada para aplicar dentro de uma netns não é um nome simples `net.*`. Usa uma chave `net.*` com pontos, como o próprio `sysctl` aceitaria. |
DX-1307 | argumento inválido | rede | 1 | especificação de publish inválida Uma especificação `-p`/`--publish` tem um protocolo que não é tcp/udp, uma porta não numérica, ou um endereço de host que não é um literal IPv4. Escreve-a como [hostIp:]hostPort:contPort[/tcp|udp], por exemplo 8080:80 ou 0.0.0.0:8080:80/tcp. |
DX-1308 | argumento inválido | rede | 1 | intervalo de portas de publish inválido Um INTERVALO de portas `-p` tem um limite não numérico, uma porta fora de ordem/fora de alcance, ou larguras de host/container que não coincidem. Usa hostStart-hostEnd:contStart-contEnd com os dois lados da mesma largura, dentro de 1-65535. |
DX-1309 | argumento inválido | rede | 1 | especificação de taxa de rede inválida Um valor `--net-bps`/`--net-burst` não faz parse, é zero, ou está fora de alcance. Usa um número com um sufixo opcional k/m/g/t, por exemplo 10mbit ou 512k. |
DX-1310 | argumento inválido | rede | 1 | o registo da rede está corrompido Um registo do NetworkStore em disco falta um campo que o seu driver precisa (parent, subnet, vni, ou o octeto base). Remove a rede e recria-a (`delonix network rm`, depois `delonix network create`). |
DX-1311 | argumento inválido | rede | 1 | nome de rede reservado O nome pedido é `bridge` (a rede default implícita) ou um nome de driver reservado (`host`/`none`). Escolhe um nome diferente. |
DX-1312 | argumento inválido | rede | 1 | nome de rede inválido Um nome de rede só pode usar letras, dígitos, traço e underscore. Escolhe um nome feito de [A-Za-z0-9_-]. |
DX-1313 | argumento inválido | rede | 1 | subnet de bridge não suportada Um --subnet para o driver bridge não é um 10.<intervalo-de-workload>.0.0/16 que o IPAM deste motor consiga realizar. Passa um 10.<lo>-<hi>.0.0/16 dentro do intervalo de workload, ou omite --subnet para o motor escolher um livre. |
DX-1314 | argumento inválido | rede | 1 | subnet inválida Um CIDR --subnet arbitrário não é um prefixo privado (RFC 1918) de um comprimento utilizável. Usa um intervalo privado (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) com um prefixo entre /8 e /28. |
DX-1315 | argumento inválido | rede | 1 | gateway de rede inválido Um gateway declarado está fora do prefixo da rede, ou é o endereço de rede/broadcast. Escolhe um endereço dentro do prefixo da rede que não seja o endereço de rede ou de broadcast. |
DX-1316 | argumento inválido | rede | 1 | octeto base /16 inválido Um octeto base /16 para uma rede bridge está fora do espaço de endereços de workload. Escolhe um octeto base dentro do intervalo de workload que este motor reporta. |
DX-1317 | argumento inválido | rede | 1 | sem registo para anotar A rede default implícita `bridge` não tem registo em disco, por isso não há nada para etiquetar/anotar. Anota antes uma rede de utilizador; a rede default não pode levar labels. |
DX-1318 | argumento inválido | rede | 1 | chave ou valor de metadados de rede inválido Uma chave de label/annotation está vazia ou contém '=' ou uma nova linha, ou o seu valor contém uma nova linha. Usa uma chave/valor sem '=' e sem nova linha. |
DX-1319 | argumento inválido | rede | 1 | VNI inválido O VNI de uma rede overlay não faz parse, ou está fora de 1..16777215. Passa um VNI entre 1 e 16777215. |
DX-1320 | argumento inválido | rede | 1 | não é uma rede overlay Foi pedida uma operação de overlay-peer a uma rede cujo driver não é `overlay`. Aponta para uma rede criada com `--driver overlay`. |
DX-1321 | argumento inválido | rede | 1 | peer de overlay inválido Uma especificação de peer de overlay não tem node_ip. Escreve o peer como <node_ip> ou <node_ip>=<pubkey>=<wg_ip>. |
DX-1322 | argumento inválido | rede | 1 | driver de rede desconhecido Um driver de `create_lan` não é nem `macvlan` nem `ipvlan`. Usa --driver macvlan ou --driver ipvlan. |
DX-1323 | argumento inválido | rede | 1 | NIC parent não encontrada A NIC parent de uma rede macvlan/ipvlan não existe neste host. Passa uma NIC que o `ip link` deste host realmente mostra. |
DX-1324 | argumento inválido | rede | 1 | subnet de macvlan/ipvlan inválida Uma subnet de macvlan/ipvlan não faz parse como um CIDR. Escreve-a como por exemplo 192.168.1.0/24. |
DX-1325 | argumento inválido | rede | 1 | comando de controlo do holder inválido Uma linha enviada no socket de controlo do holder não é uma que este build reconheça. Verifica que a CLI e o holder são do mesmo build; um holder antigo pode precisar de um respawn. |
DX-1326 | argumento inválido | rede | 1 | payload hex inválido Um payload codificado em hex no socket de controlo do holder (um conflist CNI, uma especificação de firewall) não decodifica. Isto é um erro de protocolo interno entre a CLI e o holder; verifica que são o mesmo build. |
DX-1327 | argumento inválido | rede | 1 | destino de FDB/overlay peer inválido Um destino de FDB ou de overlay-peer não é um endereço IP nu. Passa um endereço IPv4 simples, sem outros caracteres. |
DX-1328 | argumento inválido | rede | 1 | a bridge de ingress default não pode ser removida Foi feita uma tentativa de remover a bridge de ingress default, de que todos os outros caminhos de rede dependem. Remove antes uma rede de utilizador; a bridge default não é removível. |
DX-1329 | argumento inválido | rede | 1 | VIP fora do espaço de endereços de ingress Um VIP de load-balancer está fora do espaço de endereços de ingress (10.200-254.x). Usa um endereço dentro do intervalo de ingress que este motor reporta. |
DX-1330 | argumento inválido | rede | 1 | especificação de load-balancer inválida Uma lista de backends de `lbset` tem um peso inválido, um backend sem porta, um backend inválido, ou está vazia. Escreve os backends como ip:port[#weight], separados por vírgula, com pelo menos uma entrada. |
DX-1331 | argumento inválido | rede | 1 | porta inválida Uma string de porta dada ao dataplane de ingress (publish/unpublish/lbset) não está entre 1..65535. Passa uma porta numérica entre 1 e 65535. |
DX-1332 | argumento inválido | rede | 1 | protocolo inválido Foi dado um protocolo que não tcp/udp a uma chamada de publish/unpublish. Usa tcp ou udp. |
DX-1333 | argumento inválido | rede | 1 | política de egress inválida Uma política de egress não é allow, deny, ou allowlist:<cidrs>. Usa allow, deny, ou allowlist:<CIDRs separados por vírgula>. |
DX-1334 | argumento inválido | rede | 1 | hostname de egress inválido Um sufixo de `egress host` não é um nome DNS simples. Usa um sufixo de hostname/domínio simples, por exemplo example.com. |
DX-1335 | argumento inválido | rede | 1 | IP fora do espaço de endereços de ingress Um IP de container/publish está fora do espaço de endereços de ingress (10.200-254.x). Liga o container a uma rede dentro do intervalo de ingress que este motor reporta. |
DX-1336 | argumento inválido | rede | 1 | firewall aplicada sem IP apply_firewall/apply_firewall_all foi chamado com uma lista de IPs vazia. Isto é um erro de chamada interna; reporta-o se o vires vindo da CLI. |
DX-1337 | argumento inválido | rede | 1 | especificação de firewall inválida Uma especificação de firewall (JSON descodificado de hex enviado ao holder) não faz parse na estrutura esperada. Verifica que a CLI e o holder são do mesmo build. |
DX-1338 | argumento inválido | rede | 1 | não foi possível codificar uma especificação de firewall Codificar a firewall de um container para enviar pelo socket de controlo falhou. Isto é um erro de chamada interna; reporta-o se o vires vindo da CLI. |
DX-1339 | argumento inválido | rede | 1 | sem prefixo de ingress livre Não sobra nenhum prefixo /16 no espaço de endereços de ingress para uma rede nova. Remove uma rede não usada (`delonix network rm`) para libertar um prefixo. |
DX-1340 | argumento inválido | rede | 1 | o IP não pertence à rede Um IP fixo dado para ligar um container não está dentro da subnet da rede alvo. Passa um endereço dentro da própria subnet da rede (`delonix network inspect <name>`). |
DX-1341 | argumento inválido | rede | 1 | registo de provedor de gateway inválido Um registo de GatewayProvider (ADR-0051) não tinha id, ou reclamou um nome que já pertence a outro provider. Corrige o registo que a mensagem descreve; isto é um erro de programação no processo que o registou, não um manifesto/flag. |
DX-1344 | argumento inválido | rede | 1 | registo de provider de zona de rede recusado Um processo tentou registar um SegmentProvider com id vazio, ou com um id/alias que já pertence a outro provider. Corrige o registo (erro de chamada interna, a menos que esteja envolvido um crate de provider de terceiros). |
DX-1380 | argumento inválido | rede | 1 | a intenção de rede não pode ser servida como está escrita O que um documento de rede ou o providers.yaml pede não pode ser servido como está escrito: nada nomeia um provider para o papel e nada mais decide (zero ou vários registados, ou um providers.yaml sem networkDefaults.<papel>), ou o provider recusou os campos enviados (o OPNsense responde com validações campo a campo). Reason `invalid_intent` da D5 do ADR-0059. Lê a mensagem: nomeia o provider (networkDefaults.<papel> no providers.yaml, ou spec.provider onde o Kind o tem), ou corrige os campos que o provider listou. |
DX-1401 | argumento inválido | imagem | 1 | SBOM vazio A imagem não tem base de dados de pacotes apk ou dpkg, por isso não há nada para procurar vulnerabilidades. Analisa uma imagem construída sobre uma distribuição com gestor de pacotes, ou analisa antes a imagem base. |
DX-1402 | argumento inválido | imagem | 1 | base de dados de avisos inválida A base de dados de avisos que o scanner carregou não é JSON válido. Sincroniza-a outra vez com `delonix image scan --update --feed <url>`. |
DX-1403 | argumento inválido | imagem | 1 | o feed OSV não é JSON O feed dado ao scanner não pôde ser lido como JSON. Confirma que o URL do --feed aponta para uma exportação OSV em JSON, e não para uma página HTML. |
DX-1404 | argumento inválido | imagem | 1 | o feed OSV tem a forma errada O feed é JSON mas não é uma lista de avisos nem um objecto com uma lista vulns. Aponta o --feed para uma exportação OSV: uma lista de avisos, ou um objecto com uma lista vulns. |
DX-1405 | argumento inválido | imagem | 1 | não é um módulo Odoo O directório indicado como módulo não tem __manifest__.py. Aponta a análise para o directório do próprio módulo, o que tem o __manifest__.py. |
DX-1406 | argumento inválido | imagem | 1 | nenhum módulo Odoo encontrado Nenhum directório abaixo do caminho indicado tem __manifest__.py. Aponta a análise para o directório que contém os módulos. |
DX-1407 | argumento inválido | imagem | 1 | Dockerfile inválido O ficheiro de build não se lê, ou pede uma instrução ou flag que este motor não suporta. A mensagem diz a linha. Corrige a linha que a mensagem nomeia; o `delonix build --help` lista o que é suportado. |
DX-1408 | argumento inválido | imagem | 1 | arquivo de imagem inválido O arquivo a carregar está incompleto ou corrompido: falta o manifesto, ou um blob não corresponde ao seu hash. Exporta o arquivo outra vez a partir da origem e carrega o ficheiro novo. |
DX-1409 | argumento inválido | imagem | 1 | não foi possível empacotar ou desempacotar uma layer A leitura, compressão ou extracção de uma layer ou de um rootfs falhou. A mensagem traz o erro de origem. Lê o erro na mensagem; verifica o espaço livre do state root (`delonix system df`) e tenta outra vez. |
DX-1410 | argumento inválido | imagem | 1 | imagem sem layers O registo da imagem não tem layers para montar como rootfs. Descarrega ou constrói a imagem outra vez. |
DX-1411 | argumento inválido | imagem | 1 | o state root não pode suportar um overlay O caminho do state root contém um carácter (':') que as opções de montagem do overlay não conseguem exprimir. Muda o state root para um caminho sem ':' (DELONIX_ROOT). |
DX-1412 | argumento inválido | imagem | 1 | chave de assinatura inválida Uma chave de assinatura ou verificação não é uma chave P-256 válida em PEM, ou não pôde ser gerada. Indica uma chave ECDSA P-256 em PEM compatível com o cosign. |
DX-1413 | argumento inválido | imagem | 1 | imagem não assinada O registo não tem assinatura cosign para o digest da imagem. Assina-a com `delonix image sign`, ou descarrega uma imagem assinada. |
DX-1414 | argumento inválido | imagem | 1 | assinatura inválida Existe uma assinatura, mas não verifica com a chave indicada, ou o seu manifesto ou conteúdo está malformado. Confirma que a chave é aquela com que a imagem foi assinada; não corras uma imagem cuja assinatura falha. |
DX-1415 | argumento inválido | imagem | 1 | estado da assinatura desconhecido O registo não respondeu à consulta da assinatura, por isso não foi possível decidir se a imagem está assinada. Não é um veredicto. Tenta outra vez quando o registo estiver acessível; a mensagem traz o erro do registo. |
DX-1416 | argumento inválido | imagem | 1 | imagem já assinada Já existe uma assinatura para este digest. Usa --force para a assinar outra vez. |
DX-1417 | argumento inválido | imagem | 1 | não foi possível assinar A produção ou o envio da assinatura falhou. Lê o erro na mensagem e verifica o login no registo (`delonix image login`). |
DX-1501 | argumento inválido | vm | 1 | não suportado neste backend O verbo pause, unpause, snapshot, restore ou delete-snapshot pedido não está implementado pelo backend desta VM. Usa um backend que o suporte (o libvirt é o que mais suporta), ou tira o verbo. |
DX-1502 | argumento inválido | vm | 1 | registo de backend de VM inválido Um registo de backend não tinha id, reivindicou auto-selecção vinda de fora desta crate, ou reivindicou um nome que outro backend já tem. Corrige o registo que a mensagem descreve; isto é um erro de programação no processo que o registou, não um manifesto/flag. |
DX-1503 | argumento inválido | vm | 1 | backend de VM desconhecido O valor de --backend/DELONIX_VM_BACKEND não nomeia um backend registado. Usa um dos backends que a mensagem lista. |
DX-1504 | argumento inválido | vm | 1 | o registo da VM nomeia um backend não registado O próprio registo da VM nomeia um backend para o qual este processo não tem registo. Corre um build/processo que registe esse backend, ou recria a VM com um que esteja registado aqui. |
DX-1505 | argumento inválido | vm | 1 | exige o backend libvirt O spec.volumes da VM precisa de virtio-9p, que o backend Cloud Hypervisor não implementa. Remove `backend: cloud-hypervisor`, ou tira os volumes. |
DX-1506 | argumento inválido | vm | 1 | caminho do socket da VM demasiado longo O caminho do api-socket ou do socket de consola da VM não caberia no sun_path de um socket UNIX (108 bytes em Linux). Usa um nome de VM mais curto ou um DELONIX_ROOT mais curto. |
DX-1507 | argumento inválido | vm | 1 | nome de VM inválido Um nome de VM só pode usar letras, dígitos, ponto, traço e underscore, sem travessia de caminho. Escolhe um nome feito de [A-Za-z0-9._-] sem '/', '..', nem '-' inicial. |
DX-1508 | argumento inválido | vm | 1 | namespace não aplicável neste backend O backend da VM não põe as suas VMs na SDN deste motor, por isso o isolamento de namespace não pode ser aplicado. Usa `--backend cloud-hypervisor`, ou tira `--namespace`. |
DX-1509 | argumento inválido | vm | 1 | --disk-size menor que a imagem base Um overlay qcow2 não pode ser menor que o seu backing file. Pede um --disk-size pelo menos tão grande como a imagem base. |
DX-1510 | argumento inválido | vm | 1 | nome de snapshot inválido Um nome de snapshot de VM só pode usar letras, dígitos, ponto, traço e underscore, sem travessia de caminho. Escolhe um nome feito de [A-Za-z0-9._-] sem '/', '..', nem '-' inicial. |
DX-1511 | argumento inválido | vm | 1 | --ip exige o modo nat do libvirt Um IP estático é materializado como uma reserva DHCP na rede libvirt, que só o modo de rede nat/network tem. Tira --net-mode, ou põe-no a nat, para usar --ip; numa bridge de host, reserva antes o IP no próprio DHCP da LAN. |
DX-1512 | argumento inválido | vm | 1 | IP estático inválido O valor de --ip não é interpretável como um endereço IPv4. Passa um endereço IPv4 em formato de quatro octetos. |
DX-1513 | argumento inválido | vm | 1 | não foi possível reservar o IP estático o virsh net-update recusou a reserva DHCP para este par MAC/IP. Lê a razão do virsh na mensagem; o IP pode estar fora da subnet da rede. |
DX-1514 | argumento inválido | vm | 1 | o backup de disco a quente exige o backend libvirt Um backup de disco a quente (VM a correr) usa o virsh blockcommit, que só o backend libvirt tem. Pára a VM e tira antes um snapshot offline, ou recria-a no backend libvirt. |
DX-1515 | argumento inválido | vm | 1 | VM não está no estado certo para este verbo pause precisa de uma VM a correr e unpause precisa de uma em pausa; a VM não está em nenhum dos dois estados. Consulta `delonix vm status <nome>` e usa o verbo que corresponde ao seu estado actual. |
DX-1516 | argumento inválido | vm | 1 | não foi possível copiar o user-data do cloud-init O ficheiro que um --user-data nomeia não pôde ser copiado para o directório de seed da VM. Verifica que o caminho existe e é legível por este utilizador. |
DX-1517 | argumento inválido | vm | 1 | não existe esse nó Proxmox O nó nomeado no alvo não faz parte do cluster a que este url responde. Aponta o alvo a um nó que o `GET /nodes` deste cluster realmente reporta, ou corrige o url. |
DX-1518 | argumento inválido | vm | 1 | url do Proxmox inválido O url do alvo não tem esquema, tem um esquema que não https, ou não nomeia um host. Escreve-o como https://<host>:8006, sem caminho. |
DX-1519 | argumento inválido | vm | 1 | credencial no url do Proxmox O url leva um utilizador ou password (userinfo), uma credencial escondida no manifesto em vez de um kind: Secret. Tira o userinfo e passa a credencial como um token de API ou password do Proxmox num Secret. |
DX-1520 | argumento inválido | vm | 1 | nome de bridge Proxmox inválido Um nome de bridge é interpolado na propriedade net0 da VM, e tem de ser um nome de interface Linux válido. Usa um nome como vmbr0: letras, dígitos, '-', '_' ou '.', até 15 caracteres. |
DX-1521 | argumento inválido | vm | 1 | nome de nó Proxmox inválido Um nome de nó entra num caminho de URL em cada chamada, e tem de ser o que o próprio Proxmox aceita. Usa letras, dígitos, '-' e '.', a bater com o nome do nó em `pvecm status`. |
DX-1522 | argumento inválido | vm | 1 | spec de disco Proxmox inválida O disco de uma VM neste backend tem de nomear um template a clonar ou um storage e tamanho no nó; um caminho local não tem significado ali. Escreve `template:<vmid>` para clonar um template, ou `<storage>:<tamanho-em-GiB>` para um disco novo, por exemplo local-lvm:8. |
DX-1523 | argumento inválido | vm | 1 | nome de instantâneo Proxmox inválido Um nome de instantâneo entra num caminho de URL e no próprio espaço de nomes do Proxmox, e 'current' está reservado para o estado ao vivo. Usa letras, dígitos, '-' e '_', e não 'current'. |
DX-1524 | argumento inválido | vm | 1 | campo não suportado no backend Proxmox O manifesto pede um kernel/initrd/seed/dispositivo local, um ajuste do QEMU que pertence ao nó, ou uma escapatória exclusiva do libvirt — nada disto este backend remoto consegue honrar. Tira o campo que a mensagem nomeia, ou usa um backend local (`--backend libvirt`). |
DX-1525 | argumento inválido | vm | 1 | VM sem handle do Proxmox O registo da VM não leva handle do Proxmox, por isso não foi criada por este backend e este backend não sabe o seu vmid. Gere esta VM com o backend que a criou. |
DX-1526 | argumento inválido | vm | 1 | o Proxmox rejeitou o pedido O nó respondeu HTTP 400/422: um parâmetro do pedido não é aceitável para ele; a mensagem traz a razão do próprio nó. Lê a razão do nó na mensagem e corrige o campo que ela nomeia. |
DX-1527 | argumento inválido | vm | 1 | capacidade desconhecida Uma entrada de `required_capabilities` (`vm create --require`, `spec.requiredCapabilities`) nomeia algo que o catálogo de capacidades não tem — um erro de escrita, ou um nome de outra versão do catálogo. É recusada antes de qualquer backend ser consultado. Usa um nome de `delonix provider ls` (a versão do catálogo está no cabeçalho). |
DX-1528 | argumento inválido | vm | 1 | regra de firewall do Proxmox inválida Uma regra da firewall PRÓPRIA do nó (não a firewall SDN deste motor) nomeou um `type` diferente de 'in'/'out', ou uma `action` diferente de ACCEPT/DROP/REJECT — o nome de um grupo de firewall é outro tipo de valor que este cliente não valida nem aceita. Usa 'in' ou 'out' para o type, e ACCEPT, DROP ou REJECT para a action. |
DX-1529 | argumento inválido | vm | 1 | tipo de dump de cloud-init Proxmox inválido o `type` de cloudinit_dump tem de ser um dos três que a rota de cloud-init do nó aceita, e é recusado aqui antes de qualquer pedido chegar ao nó. Pede 'user', 'network' ou 'meta'. |
DX-1530 | argumento inválido | vm | 1 | id de zona ou vnet SDN do Proxmox inválido Um id de zona ou vnet entra num caminho de URL e no próprio espaço de nomes SDN do nó, que o Proxmox limita a uma letra minúscula seguida de até 7 letras minúsculas ou dígitos (8 caracteres no total). Escolhe um id de até 8 caracteres, começado por uma letra minúscula, o resto letras minúsculas ou dígitos. |
DX-1531 | argumento inválido | vm | 1 | nome de alias/ipset da firewall do Proxmox inválido Um nome de alias ou de IP-set da firewall PRÓPRIA da VM (não a firewall SDN deste motor) vai para um caminho de URL e para o namespace do próprio nó, que o Proxmox limita a uma letra seguida de uma ou mais letras, dígitos, '-' ou '_' (pelo menos 2 caracteres no total). Escolhe um nome que comece por uma letra e tenha pelo menos mais uma letra, dígito, '-' ou '_' a seguir. |
DX-1532 | argumento inválido | vm | 1 | endereço de firewall do Proxmox inválido Um CIDR/endereço dado a um alias de firewall ou a uma entrada de um IP-set nomeado não é um endereço IPv4/IPv6, opcionalmente com um '/<prefixo>' — as rotas de alias/ipset do próprio nó rejeitam-no antes de mais nada. Dá um endereço IPv4 ou IPv6, ou um intervalo CIDR como '10.0.0.0/8'. |
DX-1533 | argumento inválido | vm | 1 | CIDR de subnet SDN do Proxmox inválido Uma subnet SDN é nomeada por uma rede CIDR (um endereço IPv4 ou IPv6 com um comprimento de prefixo), recusada aqui antes de entrar no corpo de um pedido ou, com o `/` trocado por `-`, num caminho de URL. Dá um CIDR como '10.0.0.0/24' ou 'fd00::/64', com um comprimento de prefixo válido para a família de endereços. |
DX-1534 | argumento inválido | vm | 1 | endereço SDN do Proxmox inválido Um endereço IPv4/IPv6 simples (uma ponta de intervalo DHCP, um servidor DNS, uma reserva no IPAM, o endereço de router de um nó de fabric) ou um endereço MAC que um campo SDN recebe não foi reconhecido como tal, recusado antes de entrar no corpo de um pedido ou num URL. Dá o endereço sem comprimento de prefixo ('10.0.0.50', 'fd00::5'), ou o MAC como XX:XX:XX:XX:XX:XX. |
DX-1535 | argumento inválido | vm | 1 | tempo limite de encerramento do Proxmox inválido Pediu-se a um encerramento ou reinício feito pelo convidado que esperasse mais do que este cliente espera por qualquer tarefa do nó, por isso o cliente desistiria com o nó ainda dentro da tarefa. Dá um tempo limite menor do que o prazo de tarefa do cliente (600 segundos por omissão), ou omite-o para ficar com o valor por omissão do próprio nó. |
DX-1536 | argumento inválido | vm | 1 | redimensionamento de VM inválido O `vm resize` precisa de `--vcpus` e/ou `--memory`; os vCPUs têm de ser pelo menos 1 e a memória um número com sufixo M/G opcional (`512M`, `4G`, `4Gi`). Um valor que não se lê é recusado em vez de ser tomado por um valor por omissão. Passa `--vcpus <n>` (n ≥ 1) e/ou `--memory <tamanho>`, por exemplo `--memory 4G`. |
DX-1537 | argumento inválido | vm | 1 | alteração de cloud-init inválida O `vm cloud-init` precisa de `--hostname`, `--user` e/ou `--ssh-key`; o hostname tem de ser uma etiqueta DNS (letras, dígitos, '-', no máximo 63), o utilizador um nome de login, cada chave uma linha. Uma imagem de appliance não corre cloud-init e é recusada. Dá pelo menos um dos três, na forma que o convidado aceita — por exemplo `--hostname web-1 --ssh-key @~/.ssh/id_ed25519.pub`. |
DX-1538 | argumento inválido | vm | 1 | nó inválido para onde mover a VM O `vm move --node` nomeia o nó do cluster da VM para onde ela vai. Esse nome tem de ser um membro do cluster, estar online e não ser o nó onde a VM já está; o motor nunca escolhe um por ti. Passa outro membro do cluster que esteja online — a lista do próprio nó é `pvecm nodes`, ou `delonix provider describe proxmox --probe`. |
DX-1539 | argumento inválido | vm | 1 | não foi possível ler a imagem local Uma VM Proxmox criada a partir de uma imagem do store do motor é primeiro enviada para o nó (ADR-0057). O ficheiro para onde a imagem aponta não pôde ser aberto nem lido, ou está vazio. Verifica a imagem com `delonix image vm ls` e `delonix image vm describe <nome>`; volta a descarregá-la ou a construí-la se o ficheiro faltar. |
DX-1540 | argumento inválido | vm | 1 | o container de sistema pede algo que o nó não consegue guardar Um container de sistema num nó Proxmox é sempre sem privilégio: um privilegiado seria uma decisão de privilégio num host remoto, com spike próprio (ADR-0058). O seu entrypoint é guardado como uma linha partida pelos espaços, por isso um argumento com um espaço ou um carácter de controlo não pode ficar como foi escrito; o seu ambiente é uma lista de NOME=valor, em que o nome tem letras, dígitos e underscores. Deixa o `unprivileged` a true, escreve o entrypoint como argumentos sem espaços (ou põe-no num script dentro da imagem), e nomeia cada variável só com letras, dígitos e underscores. |
DX-1550 | argumento inválido | vm | 1 | controlador, prefix list ou route map do SDN do Proxmox inválido Um controlador BGP/EVPN, uma prefix list ou um route map do SDN do próprio cluster (não o deste motor) foi recusado antes de qualquer pedido: um id fora do formato do próprio Proxmox (um id de controlador começa por uma letra; um id de prefix list ou de route map tem de 1 a 32 letras, dígitos, '-' ou '_', e o nó reserva alguns), um campo em falta que o tipo de controlador exige (EVPN: um ASN e exactamente um de peers/fabric; BGP: um nó, um ASN e peers), ou um campo de entrada que o nó não aceitaria (acção que não seja permit/deny, um comprimento de prefixo além da família de endereços, uma chave de match/set desconhecida). Corrige o campo que a mensagem nomeia; o `apidoc.js` do próprio nó lista os formatos. |
DX-1551 | argumento inválido | vm | 1 | regra de firewall de vnet do Proxmox inválida A firewall de uma vnet filtra o tráfego ENCAMINHADO através da vnet e só aceita regras 'forward' — o nó recusa 'in' e 'out' ali — com uma acção ACCEPT, DROP ou REJECT (o nome de um security group não é aceite por este cliente). Usa o tipo de regra 'forward' (o de omissão) e ACCEPT, DROP ou REJECT; para o tráfego de ou para uma VM, usa a firewall da própria VM. |
DX-1801 | argumento inválido | segurança | 1 | nome de segredo inválido O nome de um segredo só pode ter minúsculas, dígitos, ponto, hífen e sublinhado, até 64 caracteres. Escolhe um nome feito de [a-z0-9._-]. |
DX-1802 | argumento inválido | segurança | 1 | chave de segredo inválida A chave de um segredo tem de ser um nome de variável de ambiente válido: uma letra ou sublinhado, seguidos de letras, dígitos ou sublinhados. Muda o nome da chave, por exemplo DB_PASSWORD. |
DX-1803 | argumento inválido | segurança | 1 | nome de credencial inválido O nome de uma credencial só pode ter minúsculas, dígitos, ponto, hífen, sublinhado e dois pontos. Escolhe um nome feito de [a-z0-9._:-]. |
DX-1804 | argumento inválido | segurança | 1 | chave mestra corrompida O ficheiro da chave mestra do host tem o tamanho errado, por isso nada do que foi cifrado com ela pode ser lido. Repõe a chave a partir de um snapshot do nó (`delonix system snapshot restore`); sem ela os segredos cifrados perdem-se. |
DX-1805 | argumento inválido | segurança | 1 | o cofre de segredos não conseguiu cifrar ou decifrar A cifra ou a decifra falhou: um blob corrompido, ou uma chave que não é aquela com que foi selado. Confirma que a chave mestra é a do próprio host; recria o segredo se o ficheiro estiver corrompido. |
DX-1901 | argumento inválido | máquina | 1 | perfil AppArmor indisponível O perfil AppArmor pedido não pôde ser carregado: o AppArmor não está activado neste host, o apparmor_parser não está no PATH, ou recusou o perfil. Activa o AppArmor neste host, instala o apparmor_parser, ou passa --security-opt apparmor=unconfined. |
DX-1902 | argumento inválido | máquina | 1 | nenhum spec CDI encontrado Um pedido --gpus/--device nomeou um dispositivo qualificado CDI, mas este host não tem spec CDI gerado nenhum. Gera um com `nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml` (instalando primeiro o nvidia-container-toolkit se for preciso). |
DX-2000 | uso inválido | motor | 2 | uso inválido A linha de comando não se lê: um subcomando desconhecido, um argumento em falta ou uma flag que este comando não aceita. Corre o comando com --help e segue a linha de uso. |
DX-2601 | uso inválido | stack | 2 | o plano tem alterações O `stack plan --detailed-exitcode` encontrou diferenças entre o manifesto e o que está a correr. Não é uma falha. Revê o plano e corre `delonix stack apply` se as alterações forem desejadas. |
DX-3000 | não está a correr | motor | 3 | não está a correr O recurso existe mas não está a correr, e a operação precisa dele a correr. Arranca-o (`delonix container start <nome>`, `delonix vm start <nome>`) e tenta outra vez. |
DX-3101 | não está a correr | container | 3 | o container não está a correr O container existe, mas a operação precisa dele a correr. Arranca-o primeiro (`delonix container start <nome>`). |
DX-4000 | não existe | motor | 4 | esse recurso não existe Não existe nada com esse nome ou id neste âmbito. Confirma o nome e o namespace com o `ls` correspondente, ou cria primeiro o recurso. |
DX-4101 | não existe | container | 4 | esse container não existe Nenhum container responde a esse id, prefixo de id ou nome neste state root. Lista-os com `delonix container ps -a`. |
DX-4102 | não existe | container | 4 | dispositivo CDI não encontrado O nome do dispositivo não é declarado por nenhum spec CDI descoberto. Confere o nome do dispositivo contra o spec (`nvidia-ctk cdi list`), ou regenera-o. |
DX-4201 | não existe | volume | 4 | esse volume não existe Não existe nenhum volume com esse nome neste âmbito. Lista-os com `delonix volume ls` (-A para todos os namespaces), ou cria-o com `delonix volume create`. |
DX-4202 | não existe | volume | 4 | esse snapshot não existe O volume não tem nenhum snapshot com esse nome. Lista os snapshots dele com `delonix volume snapshot ls <volume>`. |
DX-4301 | não existe | rede | 4 | não existe esse NetworkRoute Não existe nenhum NetworkRoute entre o par de redes dado. Lista as rotas com `delonix network route ls`, ou cria uma com `delonix network route <from> <to>`. |
DX-4302 | não existe | rede | 4 | não existe esse Service Não existe nenhum Service com esse nome nesse namespace. Lista os services com `delonix get services`. |
DX-4303 | não existe | rede | 4 | a rede de ingress não existe A rede nomeada não tem NetDef neste holder — nunca foi realizada aqui, ou foi removida. Cria-a com `delonix network create <name>`, ou usa a rede default. |
DX-4304 | não existe | rede | 4 | não existe essa rota da API do OPNsense A appliance respondeu HTTP 404 `{"errorMessage":"Endpoint not found"}` — o caminho módulo/controller/comando não existe nesta versão do OPNsense. Confere o caminho contra `docs.opnsense.org/development/api.html` para a versão exacta da appliance. |
DX-4401 | não existe | imagem | 4 | essa imagem não existe A imagem não está no store local e o registo não tem essa tag. Confirma a referência, ou descarrega-a primeiro (`delonix image pull`). |
DX-4402 | não existe | imagem | 4 | imagem ou repositório não visível O registo não mostra o repositório ou a imagem a estas credenciais: não existe, ou é privado. Faz login com credenciais que o possam ver (`delonix image login <registo>`). |
DX-4501 | não existe | vm | 4 | essa VM não existe Não existe nenhuma máquina virtual com esse nome neste state root. Lista-as com `delonix vm ls`, ou cria-a com `delonix vm create`. |
DX-4502 | não existe | vm | 4 | esse snapshot não existe A VM não tem nenhum snapshot com esse nome. Lista os seus snapshots com `delonix vm snapshot ls <vm>`. |
DX-4503 | não existe | vm | 4 | esse snapshot não existe A VM não tem instantâneo nenhum com esse nome no nó Proxmox. Lista os seus snapshots com `delonix vm snapshot ls <vm>`. |
DX-4504 | não existe | vm | 4 | não existe esse recurso no nó Proxmox O nó respondeu HTTP 404, ou disse que o ficheiro de configuração da VM não existe (o que diz com HTTP 500). Confere o id da VM no registo com o `qm list` do nó; uma VM removida do lado do nó deixa um registo sem nada por trás. |
DX-4801 | não existe | segurança | 4 | esse segredo não existe Não existe nenhum segredo com esse nome. Lista-os com `delonix secret ls`, ou cria-o com `delonix secret create`. |
DX-5000 | conflito | motor | 5 | conflito: já existe O nome já está tomado, ou o estado pedido entra em conflito com o que lá está. Escolhe outro nome, remove o recurso existente, ou usa o --force/--replace do comando, se o tiver. |
DX-5101 | conflito | container | 5 | container já a correr O container está a correr, e a operação removê-lo-ia ou substituí-lo-ia sem --force. Pára-o primeiro, ou passa --force. |
DX-5301 | conflito | rede | 5 | a rede já existe Já existe uma rede do NetworkStore com esse nome. Escolhe outro nome, ou remove primeiro a existente (`delonix network rm <name>`). |
DX-5302 | conflito | rede | 5 | não sobra subnet livre O espaço de endereços de workload não tem nenhum /16 livre para dar a uma rede nova. Remove uma rede não usada (`delonix network rm <name>`) para libertar um /16. |
DX-5303 | conflito | rede | 5 | a subnet sobrepõe-se a uma rede existente O CIDR pedido sobrepõe-se à subnet de uma rede existente. Escolhe um CIDR que não se sobreponha a nenhuma rede que o `delonix network ls` já mostra. |
DX-5304 | conflito | rede | 5 | a subnet da rede não pode ser mudada no lugar Já existe uma rede com este nome com uma subnet diferente da pedida; podem já existir workloads endereçados nela. Remove a rede (`delonix network rm <name>`) e cria-a de novo com a nova subnet. |
DX-5305 | conflito | rede | 5 | octeto base já usado por outra rede O /16 dado a uma chamada de create_with_base já está a ser usado por outra rede. Escolhe um octeto base diferente, ou remove a rede que já o tem. |
DX-5306 | conflito | rede | 5 | a rede de ingress já está realizada noutro prefixo Um NetDef de ingress já está realizado num prefixo diferente do que o registo agora pede. Remove a rede (`delonix network rm <name>`) e cria-a de novo, ou mantém a subnet registada. |
DX-5307 | conflito | rede | 5 | a rede está em uso A rede ainda tem containers, membros de pod ou VMs ligados, e removê-la deixá-los-ia endereçados numa bridge que já não existe. Remove ou desliga o que a mensagem lista (`delonix container rm`, `delonix network disconnect`, `delonix vm rm`) e só depois remove a rede. |
DX-5308 | conflito | rede | 5 | endereço já ocupado O endereço pedido já está arrendado a outro container, ou pertence ao pool que o servidor DHCP da rede entrega às VMs. Escolhe outro endereço (`delonix network ipam ls` mostra os arrendados), ou deixa o endereço ao motor. |
DX-5389 | conflito | rede | 5 | o provider de rede tem algo que este motor não sobrescreve O provider remoto (um appliance OPNsense, o SDN de um cluster Proxmox) tem um objecto com a identidade que se quer garantir ou remover e sem a marca de dono deste motor (é de outra pessoa: nunca é adoptado pelo nome, nunca é apagado); ou um objecto que este motor criou foi editado lá e já não bate com o manifesto (não há actualização no lugar); ou tem alterações preparadas que não são deste motor, e o commit dele aplica tudo o que está preparado de uma vez. Reason `provider_conflict` da D5 do ADR-0059. A marca de dono é uma categoria de firewall chamada `delonix-owner:<token>` (OPNsense) ou `[delonix-owner:<token>]` no fim do alias de uma vnet (Proxmox). Lê qual dos três a mensagem nomeia: muda o nome do objecto ou remove o antigo no provider; repõe o objecto editado como foi declarado, ou substitui-o (`delonix stack apply --replace <Kind>/<nome>`); ou pede a quem preparou as outras alterações que as aplique ou descarte. Depois aplica outra vez. |
DX-5501 | conflito | vm | 5 | nome de VM já usado por outro subsistema de VM Já existe um registo de VM com este nome, criado pelo outro subsistema de VM (QEMU directo) que partilha a mesma pasta vms/. Remove-o primeiro (`delonix vm rm <nome>`), ou escolhe outro nome. |
DX-5502 | conflito | vm | 5 | nome de snapshot de VM já usado A VM já tem um snapshot com esse nome. Escolhe outro nome, ou remove o snapshot existente (`delonix vm snapshot rm`). |
DX-5503 | conflito | vm | 5 | nome de instantâneo já usado A VM já tem um instantâneo com esse nome no nó Proxmox. Escolhe outro nome, ou remove primeiro o instantâneo existente. |
DX-5504 | conflito | vm | 5 | o nó Proxmox reporta um conflito O nó respondeu HTTP 409, ou disse que o recurso já existe (o que diz com HTTP 500). Escolhe outro nome ou id, ou remove o que já lá está. |
DX-5505 | conflito | vm | 5 | a VM tem de estar parada para ser redimensionada O `vm resize` é um redimensionamento a frio: muda a definição com que a VM arranca. Um convidado a correr ou em pausa só veria a mudança no reinício seguinte, por isso o verbo recusa em vez de reportar um redimensionamento que não aconteceu. Corre `delonix vm stop <nome>`, redimensiona, e depois `delonix vm start <nome>`. |
DX-5506 | conflito | vm | 5 | a VM tem de estar parada para mudar o cloud-init O convidado lê o cloud-init no arranque: uma VM a correr ou em pausa ficaria com o hostname e as chaves antigas até ao reinício seguinte, por isso o verbo recusa em vez de reportar uma mudança que não chegou ao convidado. Corre `delonix vm stop <nome>`, muda, e depois `delonix vm start <nome>`. |
DX-5507 | conflito | vm | 5 | a VM não pode ser movida como foi pedido O `vm move` foi recusado antes de começar: a VM está no estado de energia errado para o que foi pedido (o `--live` precisa dela a correr, sem `--live` precisa dela parada), ou a pré-verificação do próprio nó diz que o destino não a pode receber — discos locais que o destino teria de copiar, um storage que o destino não tem, ou um dispositivo local. Pára ou arranca a VM de acordo com o `--live`; numa recusa da pré-verificação, põe os discos da VM num storage partilhado por todo o cluster, ou retira o dispositivo local. |
DX-5515 | conflito | vm | 5 | a configuração SDN do cluster está trancada O Proxmox VE tem um único lock global sobre a configuração SDN (`POST /cluster/sdn/lock`). Enquanto outro detentor o tiver, todas as escritas SDN encenadas e o apply são recusados; o nó diz o mesmo quando o token que este cliente levava já não é o do lock. Espera que o detentor aplique ou reverta; se o detentor já não existir, liberta o lock com o token dele (`DELETE /cluster/sdn/lock`), ou com `force=1` quando tiveres a certeza de que ninguém o está a usar. |
DX-5516 | conflito | vm | 5 | o cluster tem alterações SDN pendentes O lock SDN foi recusado porque o cluster já tem alterações SDN encenadas que ninguém aplicou. Tomar o lock na mesma e aplicar empurraria esse outro trabalho junto com esta alteração. Descobre quem as encenou (a lista de alterações pendentes do `delonix`, ou o painel SDN do nó) e pede que sejam aplicadas ou revertidas primeiro. |
DX-5517 | conflito | vm | 5 | o container de sistema não pode ser movido como pedido O `systemcontainer move` foi recusado antes de qualquer coisa se mover: o container está a correr e não foi dado `--restart` (o nó não move um container a correr a quente), os seus volumes estão num storage que o destino não partilha e não foi dado `--with-local-disks` (o nó copiá-los-ia por inteiro), ou a verificação prévia do próprio nó não lista o destino. Passa `--restart` para o parar, mover e arrancar no destino, ou `--with-local-disks` para deixar o nó copiar os volumes, ou escolhe um nó que a verificação prévia permita. |
DX-6000 | indisponível | motor | 69 | indisponível neste host Falta uma ferramenta, um backend ou uma funcionalidade do kernel de que a operação precisa. Os argumentos estão certos. Instala o que a mensagem nomeia (o `delonix system info` mostra o que este host tem) e corre o comando outra vez. |
DX-6201 | indisponível | volume | 69 | não foi possível construir o cliente HTTP do TrueNAS A pilha TLS/HTTP local não conseguiu construir um cliente para o pedido. Não há nada de errado no manifesto. Verifica as bibliotecas TLS do host; `delonix system info` reporta o que este host tem. |
DX-6202 | indisponível | volume | 69 | versão do TrueNAS não suportada Esta build só fala uma versão maior da API REST do TrueNAS; a superfície muda entre versões maiores. Aponta o manifesto a uma appliance TrueNAS SCALE na versão maior suportada, ou actualiza este motor. |
DX-6301 | indisponível | rede | 69 | o 'wg' não está disponível neste host As chaves de nó WireGuard e as redes overlay cifradas precisam do binário `wg`, que não está no PATH. Instala o wireguard-tools (Debian/Ubuntu: apt install wireguard-tools; Fedora/RHEL: dnf install wireguard-tools; Arch: pacman -S wireguard-tools). |
DX-6302 | indisponível | rede | 69 | esta rota da API de gestão já não altera a rede A rota escrevia no dataplane sem o registo do container, por isso o reapply seguinte desfazia-a e um workload com várias redes ficava com os outros endereços abertos. A API de gestão está congelada (ADR-0041 D4) e recusa em vez de escrever meia política. Usa a CLI, que passa pelo registo: `delonix net ingress`/`net egress` para firewall e saída, `delonix network connect`/`disconnect` para redes adicionais, `delonix container rm`/`stop` para desligar. |
DX-6381 | indisponível | rede | 69 | nenhum provider registado serve esta capacidade de rede O provider que serviria o pedido não está registado para o seu papel, ou não implementa a operação: um documento nomeia um que não está registado, o networkDefaults.<papel> nomeia um, ou o registo de um recurso nomeia o provider que o criou e esse provider já não está registado. Um default nunca é saltado para tentar outro provider, e um recurso registado nunca muda de provider (D3 do ADR-0059). Reason `unsupported_capability` da D5 do ADR-0059: o remédio é outro provider, não outro argumento. Configura o provider que a mensagem nomeia (`delonix provider ls` lista o que está registado), ou nomeia um que sirva o papel. |
DX-6383 | indisponível | rede | 69 | não foi possível chegar ao provider de rede O pedido ao provider de rede remoto (um appliance OPNsense) não pôde ser enviado ou não teve resposta: ligação recusada, DNS, TLS, ou uma ligação cortada a meio da resposta. Quando cortou depois de uma escrita ter sido enviada, não se sabe se a escrita chegou; o plano seguinte volta a ler o provider. Reason `provider_unavailable` da D5 do ADR-0059. Confirma que o url do provider no providers.yaml responde a partir deste host, e depois volta a planear e a aplicar. |
DX-6501 | indisponível | vm | 69 | backend de VM não configurado Este build conhece o backend nomeado, mas nada neste processo o configurou (por exemplo, Proxmox sem alvo definido). Configura-o como a mensagem descreve, ou usa um backend que já esteja disponível. |
DX-6502 | indisponível | vm | 69 | nenhum backend de VM disponível A auto-detecção não encontrou nem Cloud Hypervisor nem libvirt+qemu instalados. Instala cloud-hypervisor ou libvirt+qemu. |
DX-6503 | indisponível | vm | 69 | nenhum firmware de VM encontrado Arrancar uma cloud image no Cloud Hypervisor sem um kernel explícito precisa de um firmware, e nenhum foi dado nem encontrado embutido. Reinstala (curl install.sh) para obter o rust-hypervisor-fw, passa --firmware <caminho>, ou usa --backend libvirt. |
DX-6504 | indisponível | vm | 69 | cloud-localds não encontrado Gerar um seed NoCloud de cloud-init precisa da ferramenta cloud-localds, que não está no PATH. Instala-a (Debian/Ubuntu: cloud-image-utils, Fedora/Rocky: cloud-utils), ou passa um seed já feito. |
DX-6505 | indisponível | vm | 69 | não foi possível construir o cliente HTTP do Proxmox A pilha TLS/HTTP local não conseguiu construir um cliente para o pedido. Não há nada de errado no manifesto. Verifica as bibliotecas TLS do host; `delonix system info` reporta o que este host tem. |
DX-6506 | indisponível | vm | 69 | nó Proxmox indisponível O nó respondeu HTTP 502/503/504: a API está de pé mas não consegue servir o pedido agora (pveproxy sem backend, nó a reiniciar). Tenta mais tarde; verifica os serviços do nó (`pveproxy`, `pvedaemon`) e o quórum do cluster. |
DX-6507 | indisponível | vm | 69 | capacidade não suportada pelo backend O backend em que esta VM correria não marca uma capacidade exigida como utilizável neste host — ou, com auto-detecção, nenhum backend disponível o faz. A mensagem lista cada entrada por satisfazer com o estado e a razão do próprio provider. É o FAILED_PRECONDITION do contrato de nó com a razão CapabilityNotSupported (ADR-0050 D6). Escolhe um backend que a tenha (`delonix provider ls`, `--backend`), corrige o que falta ao host quando o estado é `unavailable-on-host`, ou retira a exigência. |
DX-6508 | indisponível | vm | 69 | a firewall de datacenter do Proxmox está desligada Um `NetworkPolicy` com `scope: vm` pediu regras numa VM de um cluster Proxmox cuja firewall de datacenter está desligada. Com ela desligada, nenhuma regra de nenhuma VM filtra nada, e aplicar a política anunciaria uma protecção que não existe (ADR-0052). O motor nunca a liga: isso muda também o que os próprios nós do cluster aceitam. Liga a firewall ao nível de Datacenter no cluster (Datacenter › Firewall › Options, ou `pvesh set /cluster/firewall/options --enable 1`), depois de verificar as regras de gestão dos nós, e aplica outra vez. |
DX-6509 | indisponível | vm | 69 | não foi possível fazer o backup com o sistema de ficheiros do convidado congelado Um backup consistente congela os sistemas de ficheiros do convidado através do agente QEMU no instante em que o disco é copiado, para que o arquivo guarde um sistema de ficheiros coerente. O convidado não estava a correr, o agente não respondeu, ou o log do backup do próprio nó não mostrou o congelamento e o descongelamento — e um backup que não se consegue provar consistente não é reportado como tal. Instala e arranca o `qemu-guest-agent` no convidado e define `agent=1` na VM; para uma VM parada, um backup simples já é consistente. |
DX-6510 | indisponível | vm | 69 | o storage de importação do nó não aceita imagens Uma VM Proxmox criada a partir de uma imagem local é enviada para um storage do tipo dir do nó, em `import/`, e o nó só o aceita num storage cujos tipos de conteúdo incluam `import` (ADR-0057). O motor nunca muda os tipos de conteúdo de um storage: isso é administrar o nó. Liga-o no nó (`pvesm set <storage> --content <tipos actuais>,import`, ou Datacenter › Storage › Edit › Content), ou aponta o `DELONIX_PROXMOX_IMPORT_STORAGE` / `storage.import` do providers.yaml para um storage que o tenha. |
DX-6511 | indisponível | vm | 69 | o storage de importação do nó não tem espaço para a imagem A imagem seria enviada para o storage de importação do nó, e esse storage tem menos espaço livre do que a imagem. O envio é recusado antes de começar, porque a recusa do próprio nó só viria depois de os bytes terem sido enviados. Liberta espaço no storage, ou aponta o `DELONIX_PROXMOX_IMPORT_STORAGE` / `storage.import` do providers.yaml para um storage com espaço. |
DX-6512 | indisponível | vm | 69 | o apply do SDN terminou OK mas um nó não o realizou Um apply da configuração SDN do cluster (`PUT /cluster/sdn`) lança uma tarefa `reloadnetworkall`, e essa tarefa termina OK quando o reload do nó de entrada tem sucesso — mesmo que o reload de outro nó tenha falhado. O motor lê então o conteúdo das zonas em cada nó online, e pelo menos uma vnet não estava `available` lá. A mensagem nomeia cada nó, zona e vnet com a razão dada pelo próprio nó. Lê o log da tarefa 'reload network' desse nó (`pvesh get /nodes/<nó>/tasks --typefilter srvreload`), corrige o que ele nomeia — muitas vezes o pacote `dnsmasq` para uma zona com `dhcp=dnsmasq`, ou a linha `source /etc/network/interfaces.d/*` em `/etc/network/interfaces` — e aplica outra vez. |
DX-6513 | indisponível | vm | 69 | o storage do nó não aceita arquivos de container Um container de sistema num nó Proxmox é criado a partir de um arquivo OCI que o motor envia para um storage do nó como template de container, e o nó só o aceita num storage cujos tipos de conteúdo incluam `vztmpl` (ADR-0058). O motor nunca muda os tipos de conteúdo de um storage: isso é administrar o nó. Activa-o no nó (`pvesm set <storage> --content <tipos actuais>,vztmpl`, ou Datacenter › Storage › Edit › Content), ou usa um storage que o tenha. |
DX-6514 | indisponível | vm | 69 | o storage do nó não tem espaço para o arquivo de container O arquivo de container seria enviado para um storage do nó, e esse storage tem menos espaço livre do que o arquivo. O envio é recusado antes de começar, porque a recusa do próprio nó só viria depois de os bytes terem sido enviados. Liberta espaço no storage, ou usa um storage com espaço. |
DX-7000 | permissão negada | motor | 77 | permissão negada O sistema operativo recusou por uma permissão: um ficheiro, um directório ou uma capability. Corrige a permissão no caminho que a mensagem nomeia, ou corre a partir de uma sessão que a tenha, e repete. |
DX-7385 | permissão negada | rede | 77 | o provider de rede recusou a credencial O provider de rede remoto recusou o que recebeu: o OPNsense responde 401 a uma chave/segredo que não aceita, 302 para a página de login quando não chegou credencial nenhuma, e 403 a uma chave sem o privilégio que a rota pede (fase 0 do ADR-0051). Reason `provider_auth_failed` da D5 do ADR-0059. Verifica os ficheiros de chave e segredo que o providers.yaml nomeia, e que o utilizador da API tem os privilégios de firewall no appliance. |
DX-8000 | prazo esgotado | motor | 124 | prazo esgotado O prazo passou com o trabalho por acabar. Nada recusou; pode ainda estar a terminar. Espera e volta a perguntar, ou aumenta o --timeout. Não recries o recurso por cima de um que ainda está a subir. |
DX-8101 | prazo esgotado | container | 124 | container ainda a sair depois do SIGKILL O `rm -f` matou o container, mas o seu processo ainda não tinha acabado de sair quando o prazo passou — normalmente preso no kernel a despejar o sistema de ficheiros do container para um disco ocupado. O container continua listado, para nenhum processo vivo ficar sem registo. Corre o mesmo `rm -f` outra vez quando o disco do host acalmar; remove o container assim que o seu processo tiver saído. |
DX-8201 | prazo esgotado | volume | 124 | job do TrueNAS esgotou o tempo Um job assíncrono na appliance (permissões, trabalho no dataset) não chegou a um estado terminal antes do prazo. Pode ainda estar a terminar na appliance; verifica-o lá antes de repetir. |
DX-8501 | prazo esgotado | vm | 124 | task do Proxmox esgotou o tempo Uma task no nó (criar, arrancar, instantâneo, destruir) não chegou a um estado terminal antes do prazo. Pode ainda estar a terminar no nó; verifica o registo de tasks do nó antes de repetir. |
DX-8502 | prazo esgotado | vm | 124 | lock de configuração da VM Proxmox ficou ocupado O nó continuou a recusar porque o lock de configuração da VM estava tomado (normalmente o qmeventd a limpar depois de um stop), para lá da janela de repetição. Verifica o registo de tasks do nó para esta VM; algo ainda está a segurar o lock. |
DX-9000 | falha do sistema | motor | 1 | uma chamada de sistema falhou O kernel recusou uma operação (clone, mount, setns…). A mensagem traz a operação e o errno. Lê o errno na mensagem; o `delonix system info` verifica os requisitos do host (user namespaces, delegação de cgroup). |
DX-9001 | falha do sistema | motor | 74 | erro de I/O O sistema de ficheiros recusou num caminho de que o motor precisa: disco cheio, directório em falta, montagem avariada. Verifica o caminho na mensagem e o espaço livre do state root (`delonix system df`). |
DX-9002 | falha do sistema | motor | 1 | registo de estado inválido Um registo de estado em disco não pôde ser lido ou escrito como JSON: está corrompido ou é de uma versão incompatível. Inspecciona o registo que a mensagem nomeia; repõe-no a partir de um snapshot (`delonix system snapshot restore`) se estiver corrompido. |
DX-9003 | falha do sistema | motor | 1 | não foi possível obter o bloqueio do estado O bloqueio que serializa a leitura-modificação-escrita de um registo de estado não pôde ser aberto ou obtido, por isso a escrita foi recusada em vez de arriscar perder uma concorrente. Confirma que o state root é gravável por este utilizador e não está num sistema de ficheiros sem flock. |
DX-9004 | falha do sistema | motor | 1 | o kernel não deu entropia O kernel não forneceu bytes aleatórios, de que a cifra e os valores gerados precisam. Confirma que o getrandom(2) funciona neste host (um kernel muito antigo ou um perfil seccomp restritivo). |
DX-9201 | falha do sistema | volume | 1 | uma ferramenta de armazenamento falhou Uma ferramenta do host de que o volume precisa (mount, mkfs.ext4, resize2fs, losetup…) falhou ou não existe. A mensagem traz o erro dela. Lê o erro da ferramenta na mensagem; montar volumes de rede e quotas rígidas exige CAP_SYS_ADMIN. |
DX-9202 | falha do sistema | volume | 1 | pedido ao TrueNAS falhou O pedido HTTP à appliance não pôde ser enviado nem respondido (rede, TLS, DNS). Verifica o url do alvo e que a appliance é alcançável a partir deste host. |
DX-9203 | falha do sistema | volume | 1 | TrueNAS respondeu com um erro HTTP A API REST da appliance devolveu um estado fora de 2xx; a mensagem leva o corpo do erro próprio. Lê o corpo na mensagem — o TrueNAS põe ali o detalhe accionável. |
DX-9204 | falha do sistema | volume | 1 | não foi possível ler a resposta do TrueNAS A resposta da appliance não era o JSON que este cliente esperava. Verifica que a appliance está na versão maior suportada; a mensagem leva o início do corpo. |
DX-9205 | falha do sistema | volume | 1 | job do TrueNAS falhou Um job assíncrono na appliance terminou FAILED ou ABORTED; a mensagem leva a razão própria. Lê a razão da appliance na mensagem. |
DX-9206 | falha do sistema | volume | 1 | job do TrueNAS desapareceu A appliance deixou de reportar um job antes de chegar a um estado terminal, por isso não se sabe se o trabalho aconteceu. Verifica o dataset/permissões directamente na appliance. |
DX-9207 | falha do sistema | volume | 1 | dataset do TrueNAS não tem mountpoint A appliance reporta o dataset sem mountpoint, por isso não pode ser partilhado nem montado. Verifica o dataset na appliance; pode ser preciso definir um mountpoint explicitamente. |
DX-9208 | falha do sistema | volume | 1 | o estado do TrueNAS discordou do seu próprio relato A appliance relatou uma acção como feita, mas uma releitura logo a seguir discorda (dataset ausente depois de criar, ou ainda presente depois de apagar). Verifica o dataset directamente na appliance; nada aqui foi revertido. |
DX-9301 | falha do sistema | rede | 1 | uma chamada de sistema de rede falhou Uma ferramenta do host a que este motor recorre para redes (ip, nft, wg, bridge, um plugin CNI, newuidmap/newgidmap, ou uma syscall crua) não pôde correr ou terminou mal. A mensagem nomeia a operação e leva o erro próprio da ferramenta. Lê a operação e o erro na mensagem; verifica que a ferramenta está instalada e que o estado de rede do host está são. |
DX-9302 | falha do sistema | rede | 1 | não foi possível construir o cliente da API do OPNsense A pilha HTTP/TLS local não pôde ser construída a partir do Target dado (o mais provável é um certificado CA malformado). Confere `ca_cert_pem`/`insecure_tls` no Target; nada na appliance foi alcançado. |
DX-9304 | falha do sistema | rede | 1 | o OPNsense respondeu com um estado inesperado Um estado HTTP não-2xx para o qual este cliente não tem classe dedicada. A mensagem traz o estado e o corpo. Lê o estado/corpo na mensagem; pode ser uma versão contra a qual este cliente nunca foi medido (ADR-0051). |
DX-9307 | falha do sistema | rede | 1 | resposta do OPNsense demasiado grande Um corpo acima do tamanho que este cliente lê para memória (16 MiB) — a appliance, ou o que quer que tenha respondido em seu nome, não é um dos corpos JSON pequenos que esta API normalmente devolve. Isto não devia acontecer contra um OPNsense real; confere que não é outra coisa a responder nesse endereço. |
DX-9308 | falha do sistema | rede | 1 | a resposta do OPNsense não fez parse O corpo da resposta da appliance não fez parse como o JSON que esta chamada esperava. Lê o corpo em bruto na mensagem; a API da appliance pode ter mudado de forma numa versão mais nova/antiga do que a que a Fase 0 do ADR-0051 mediu (26.1.2). |
DX-9401 | falha do sistema | imagem | 1 | erro do registo Um registo OCI respondeu com um erro, ou não foi possível alcançá-lo. Verifica a referência da imagem, o teu login (`delonix image login`) e o caminho de rede até ao registo. |
DX-9402 | falha do sistema | imagem | 1 | não foi possível ler a árvore de módulos A leitura do directório de módulos falhou: uma permissão, um caminho em falta ou um erro de I/O. Confirma que o caminho na mensagem é legível por este utilizador. |
DX-9403 | falha do sistema | imagem | 1 | digest do conteúdo divergente O que o registo serviu não corresponde ao digest fixado ou declarado. O conteúdo foi recusado. Não contornes isto: o registo, um mirror ou a rede podem estar a adulterar. Descarrega outra vez de uma fonte de confiança. |
DX-9404 | falha do sistema | imagem | 1 | a montagem do overlay falhou A montagem do rootfs overlay da imagem falhou. Lê o errno na mensagem; o overlay rootless exige um kernel com overlayfs sem privilégio (`delonix system info`). |
DX-9501 | falha do sistema | vm | 1 | ferramenta de VM falhou Uma ferramenta externa de que o ciclo de vida desta VM depende (virsh, qemu-img, o processo cloud-hypervisor) não pôde ser corrida ou saiu mal. Lê o próprio erro da ferramenta na mensagem. |
DX-9502 | falha do sistema | vm | 1 | a API do Cloud Hypervisor falhou O VMM Cloud Hypervisor da VM a correr não pôde ser alcançado pelo seu api-socket local, ou respondeu com um estado não-2xx. Confirma que a VM ainda está viva (`delonix vm status`); um vmm que tenha morrido precisa de `delonix vm start`. |
DX-9503 | falha do sistema | vm | 1 | disco da VM corrompido após o stop o qemu-img check encontrou o disco de uma VM Cloud Hypervisor parada corrompido (BUG-VM-001) — uma verificação pós-stop, não o próprio stop a falhar. Corre `qemu-img check -r all` no disco que a mensagem nomeia; considera --backend libvirt para VMs que precisem de snapshots de disco fiáveis. |
DX-9504 | falha do sistema | vm | 1 | o snapshot precisa de uma VM parada O backend Cloud Hypervisor não consegue fazer snapshot/restore/delete-snapshot ao disco de uma VM a correr: o vmm segura-o em exclusivo. Pára a VM primeiro (`delonix vm stop`), ou usa --backend libvirt para checkpoints a quente. |
DX-9505 | falha do sistema | vm | 1 | sem descrição do domínio libvirt em disco Uma VM parada não tem nenhum <nome>.xml registado, por isso não há nada para redefinir para um verbo snapshot/restore. Arranca a VM uma vez (`delonix vm start <nome>`); a descrição é escrita nessa altura e fica desde então. |
DX-9506 | falha do sistema | vm | 1 | admissão da VM recusada A verificação de protecção do host recusou arrancar uma VM cuja memória pedida não cabe no que o host tem disponível. Pára outras VMs/containers, reduz a memória, ou baixa DELONIX_VM_RESERVE_MIB (por tua conta e risco). |
DX-9507 | falha do sistema | vm | 1 | o backup de disco a quente falhou Um passo do pipeline de backup de disco a quente (listar discos, preparar o overlay, snapshot, copiar, pivot) falhou. Lê o próprio erro do passo na mensagem; a VM fica a correr de qualquer forma. |
DX-9508 | falha do sistema | vm | 1 | não foi possível correr o cloud-localds A ferramenta cloud-localds não pôde ser arrancada, por uma razão que não a de estar em falta. Lê o erro na mensagem; verifica as permissões e o espaço livre do host. |
DX-9509 | falha do sistema | vm | 1 | cloud-localds falhou A ferramenta cloud-localds correu e saiu com um estado diferente de zero ao construir o ISO de seed. Verifica que o user-data/meta-data/network-config de cloud-init que lhe foi dado está bem formado. |
DX-9510 | falha do sistema | vm | 1 | pedido ao Proxmox falhou O pedido HTTP ao nó não pôde ser enviado nem respondido (rede, TLS, DNS). Verifica o url do alvo e que o nó é alcançável a partir deste host. |
DX-9511 | falha do sistema | vm | 1 | Proxmox respondeu com um erro HTTP A API REST do nó devolveu um estado fora de 2xx; a mensagem leva o corpo do erro próprio. Lê o corpo na mensagem — o Proxmox põe ali o detalhe accionável. |
DX-9512 | falha do sistema | vm | 1 | a resposta do Proxmox tinha a forma errada A resposta do nó fez parse como JSON mas não levava o que uma chamada específica precisava (um id de VM, um id de task). Verifica que a versão do Proxmox VE do nó bate com o que esta build espera. |
DX-9513 | falha do sistema | vm | 1 | task do Proxmox falhou Uma task no nó (criar, arrancar, instantâneo, destruir) terminou com um veredicto diferente de OK; a mensagem leva a razão própria do nó. Lê a razão do nó na mensagem, ou verifica o seu registo de tasks. |
DX-9514 | falha do sistema | vm | 1 | não foi possível ler a resposta do Proxmox A resposta do nó não era o JSON que este cliente esperava. Verifica que a versão do Proxmox VE do nó bate com o que esta build espera; a mensagem leva o início do corpo. |
DX-9515 | falha do sistema | vm | 1 | o Proxmox recusou a credencial O nó respondeu HTTP 401: o token da API está errado ou revogado, ou o ticket não pôde ser renovado. Confere o id e o segredo do token (ou a conta), e que o token não expirou no nó. |
DX-9516 | falha do sistema | vm | 1 | o Proxmox negou a operação O nó respondeu HTTP 403: a credencial é válida mas não tem o privilégio que esta rota exige (a mensagem nomeia a rota). Dá ao token ou à conta, no nó, o papel que a rota exige — privilégio mínimo, um papel por uso. |
DX-9517 | falha do sistema | vm | 1 | a resposta do Proxmox excedeu o limite de tamanho A resposta do nó foi maior do que este cliente está disposto a ler para memória. Verifica o que o nó está a servir nessa rota; uma resposta deste tamanho não é uma que o motor espere. |
DX-9525 | falha do sistema | vm | 1 | descartar uma alteração SDN falhada também falhou Uma alteração dentro de uma transacção SDN falhou, e o rollback que devia descartar o que ela tinha encenado (`POST /cluster/sdn/rollback`) também falhou: ficam no cluster alterações pendentes, e possivelmente o lock SDN. A mensagem nomeia as duas falhas e o token do lock. Reverte à mão com o token que a mensagem nomeia (`POST /cluster/sdn/rollback` com `lock-token` e `release-lock=1`) e repete a alteração. |
DX-9901 | falha do sistema | máquina | 1 | uma chamada de sistema do motor de containers falhou Uma operação do kernel que esta crate executa para construir ou gerir um container (clone, mount, setns, uma escrita de cgroup ou /proc) falhou. A mensagem leva a operação e o errno. Lê o errno na mensagem; o `delonix system info` verifica os requisitos do host (user namespaces, delegação de cgroup). |
| Code | Class | Domain | Exit | Message, meaning, what to do |
|---|---|---|---|---|
DX-0000 | success | engine | 0 | success The command did what it was asked. Nothing. |
DX-1000 | invalid argument | engine | 1 | invalid argument An argument, a flag value or a manifest field is not acceptable. The message names which. Correct the argument the message names and run the command again. |
DX-1101 | invalid argument | container | 1 | ambiguous container name The name exists in more than one namespace, so it does not say which container. Qualify it as <namespace>/<name>. |
DX-1102 | invalid argument | container | 1 | invalid memory limit The --memory value, or a Kubernetes resources.limits.memory, is not a byte count this engine understands. Use bytes (67108864) or a suffix (64M, 64Mi, 1G, 1Gi). |
DX-1103 | invalid argument | container | 1 | invalid CPU limit The --cpus value, or a Kubernetes resources.limits.cpu, is not a number of cores this engine understands. Use a decimal number of cores (0.5, 2); millicores (500m) are a Kubernetes spelling this flag does not take. |
DX-1104 | invalid argument | container | 1 | invalid cgroup weight A weight value (--cpu-weight, --io-weight) is outside the cgroup v2 range. Pass a weight between 1 and 10000. |
DX-1105 | invalid argument | container | 1 | invalid CPU set The --cpuset value does not parse as a CPU list (e.g. 0-3,6). Pass a comma-separated list of CPU numbers or ranges. |
DX-1106 | invalid argument | container | 1 | invalid command argument A command or entrypoint argument contains a NUL byte, which cannot be passed to execve. Remove the embedded NUL byte from the argument the message names. |
DX-1107 | invalid argument | container | 1 | empty command The container has no command to run: neither the image's ENTRYPOINT/CMD nor an explicit command was given. Pass a command, or use an image with an ENTRYPOINT or CMD. |
DX-1108 | invalid argument | container | 1 | no processes in the container An operation needing at least one live process (renice) found none. Check the container is actually running (`delonix container ps`). |
DX-1109 | invalid argument | container | 1 | unsafe live-mount path A container update --volume-add/--volume-rm target is refused by the same path-safety check bind mounts use. Use a target path that stays inside the container's own root filesystem. |
DX-1110 | invalid argument | container | 1 | live-mount source does not exist The host path given to a live bind-mount (container update --volume-add) does not exist. Check the source path on the host exists before mounting it live. |
DX-1111 | invalid argument | container | 1 | container shares the host mount namespace A live mount/unmount was asked of a container with no private mount namespace to change. This container cannot take a live volume change; stop and recreate it if one is needed. |
DX-1112 | invalid argument | container | 1 | live mount failed The forked helper that performs a live bind-mount inside the running container's namespaces exited with a failure, or was interrupted. Read the message for the exit code; retry the volume-add, or restart the container. |
DX-1113 | invalid argument | container | 1 | live unmount failed The forked helper that performs a live unmount inside the running container's namespaces did not succeed. Retry the volume-rm, or restart the container. |
DX-1114 | invalid argument | container | 1 | invalid CDI device name A --device value naming a CDI-qualified device is not vendor.com/class=name. Use the vendor.com/class=name form (e.g. nvidia.com/gpu=0). |
DX-1115 | invalid argument | container | 1 | kubelet cgroup placement needs the root runtime Placing a container in the cgroup hierarchy a CRI RunPodSandbox names needs privileges rootless, or an already-namespaced process, does not have. Run the CRI server as root, or do not request a kube cgroup parent in rootless. |
DX-1201 | invalid argument | volume | 1 | invalid volume name A volume name may only use letters, digits, dot, dash and underscore, and cannot start with a dot. Pick a name made of [A-Za-z0-9._-] that does not start with a dot. |
DX-1202 | invalid argument | volume | 1 | network volume without a device An nfs, cifs or webdav volume was asked for without the share to mount. Pass the share: --opt server=<host> --opt share=<path>. |
DX-1203 | invalid argument | volume | 1 | network volume record without a device A network volume is registered but its record lost the device to mount. Recreate the volume with its server and share. |
DX-1204 | invalid argument | volume | 1 | invalid snapshot name A snapshot name may only use letters, digits, dot, dash and underscore, with no slash or double dot. Pick a name made of [A-Za-z0-9._-]. |
DX-1205 | invalid argument | volume | 1 | hard quota on a volume with data A hard quota (loopback) can only be set on an empty volume: it would hide the data already there. Create the volume with --quota, or empty it first. |
DX-1206 | invalid argument | volume | 1 | quota below current usage The new quota is smaller than what the volume already holds. Free space in the volume first, or ask for a larger quota. |
DX-1207 | invalid argument | volume | 1 | volume in use Shrinking a quota needs the volume unmounted, and a container is using it. Stop the containers that mount it, then change the quota. |
DX-1208 | invalid argument | volume | 1 | ambiguous volume name The name is both a volume in the workload's namespace and a global volume. Rename one of the two. |
DX-1209 | invalid argument | volume | 1 | invalid volume spec A -v value is not source:/target[:options]. Write it as source:/target, optionally with :ro. |
DX-1210 | invalid argument | volume | 1 | unsupported bind option The third field of -v names an option this engine does not implement (SELinux :z/:Z, :U). Use :ro, :rw or a propagation option (:rprivate, :rslave, :rshared). |
DX-1211 | invalid argument | volume | 1 | mount target is not absolute The path inside the container must start with a slash. Write the target as an absolute path, like /data. |
DX-1212 | invalid argument | volume | 1 | quota below TrueNAS' minimum TrueNAS refuses a quota under 1 GiB on a dataset; asking for less does not get rounded up, it gets refused. Ask for at least 1 GiB, or drop the quota to leave the dataset unlimited. |
DX-1213 | invalid argument | volume | 1 | invalid TrueNAS url The provisioning target's url has no scheme, an unsupported scheme, or no host. Write it as https://<host>[:port], with no path. |
DX-1214 | invalid argument | volume | 1 | credential in the TrueNAS url The url carries a username or password (userinfo), which is a credential hidden in the manifest instead of a kind: Secret. Remove the userinfo and pass the credential as apiKeySecret or passwordSecret. |
DX-1215 | invalid argument | volume | 1 | credential over plain http Sending an API key or password to a plain http:// TrueNAS target would put it on the wire in the clear. Use https://, with insecureTLS: true if the appliance serves its own self-signed certificate. |
DX-1216 | invalid argument | volume | 1 | invalid TrueNAS dataset name A ZFS dataset name has to be <pool>/<name>, with no '..', no empty component and no leading '-'. Write the dataset as <pool>/<name>, e.g. tank/projects. |
DX-1301 | invalid argument | network | 1 | invalid WireGuard key A string given as a WireGuard key is not 44 characters of base64 ending in '='. Pass a key exactly as `wg genkey`/`wg pubkey` produced it. |
DX-1302 | invalid argument | network | 1 | invalid CNI configuration A CNI config/conflist file, or a plugin's input built from it, is not valid JSON or has the wrong shape. Check the `*.conflist`/`*.conf` file the message names; validate it with a JSON linter. |
DX-1303 | invalid argument | network | 1 | could not encode a CNI plugin's input Building the JSON a CNI plugin reads on stdin failed. Check the plugin entry in the conflist for a value JSON cannot represent. |
DX-1304 | invalid argument | network | 1 | invalid CNI plugin result A CNI plugin's own stdout did not parse as the result the CNI spec expects. Check the plugin binary the message names is the version this host's conflist expects. |
DX-1305 | invalid argument | network | 1 | CNI plugin not found A plugin named in the CNI chain (or its `ipam.type`) is not a binary in CNI_PATH. Install the plugin binary the message names into CNI_PATH (default /opt/cni/bin). |
DX-1306 | invalid argument | network | 1 | invalid netns sysctl key A sysctl key given to be set inside a netns is not a plain `net.*` name. Use a dotted `net.*` key, as `sysctl` itself would accept. |
DX-1307 | invalid argument | network | 1 | invalid publish spec A `-p`/`--publish` spec has a protocol other than tcp/udp, a non-numeric port, or a host address that is not an IPv4 literal. Write it as [hostIp:]hostPort:contPort[/tcp|udp], e.g. 8080:80 or 0.0.0.0:8080:80/tcp. |
DX-1308 | invalid argument | network | 1 | invalid publish port range A `-p` port RANGE has a non-numeric bound, an out-of-order/out-of-range port, or mismatched host/container widths. Use hostStart-hostEnd:contStart-contEnd with both sides the same width, within 1-65535. |
DX-1309 | invalid argument | network | 1 | invalid network rate spec A `--net-bps`/`--net-burst` value does not parse, is zero, or is out of range. Use a number with an optional k/m/g/t suffix, e.g. 10mbit or 512k. |
DX-1310 | invalid argument | network | 1 | network record is corrupted A NetworkStore record on disk is missing a field its driver needs (parent, subnet, vni, or the base octet). Remove the network and recreate it (`delonix network rm`, then `delonix network create`). |
DX-1311 | invalid argument | network | 1 | reserved network name The name asked for is `bridge` (the implicit default network) or a reserved driver name (`host`/`none`). Pick a different name. |
DX-1312 | invalid argument | network | 1 | invalid network name A network name may only use letters, digits, dash and underscore. Pick a name made of [A-Za-z0-9_-]. |
DX-1313 | invalid argument | network | 1 | unsupported bridge subnet A --subnet for the bridge driver is not a 10.<workload-range>.0.0/16 this engine's IPAM can realize. Pass a 10.<lo>-<hi>.0.0/16 in the workload range, or omit --subnet to let the engine pick a free one. |
DX-1314 | invalid argument | network | 1 | invalid subnet An arbitrary --subnet CIDR is not a private prefix (RFC 1918) of a usable length. Use a private range (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) with a prefix between /8 and /28. |
DX-1315 | invalid argument | network | 1 | invalid network gateway A declared gateway is outside the network's prefix, or is the network/broadcast address. Pick an address inside the network's prefix that is not the network or broadcast address. |
DX-1316 | invalid argument | network | 1 | invalid /16 base octet A /16 base octet for a bridge network is outside the workload address space. Pick a base octet inside the workload range this engine reports. |
DX-1317 | invalid argument | network | 1 | no record to annotate The implicit default `bridge` network has no record on disk, so there is nothing to label/annotate. Annotate a user network instead; the default network cannot carry labels. |
DX-1318 | invalid argument | network | 1 | invalid network metadata key or value A label/annotation key is empty or contains '=' or a newline, or its value contains a newline. Use a key/value with no '=' and no newline. |
DX-1319 | invalid argument | network | 1 | invalid VNI An overlay network's VNI does not parse, or is outside 1..16777215. Pass a VNI between 1 and 16777215. |
DX-1320 | invalid argument | network | 1 | not an overlay network An overlay-peer operation was asked of a network whose driver is not `overlay`. Target a network created with `--driver overlay`. |
DX-1321 | invalid argument | network | 1 | invalid overlay peer An overlay peer spec has no node_ip. Write the peer as <node_ip> or <node_ip>=<pubkey>=<wg_ip>. |
DX-1322 | invalid argument | network | 1 | unknown network driver A `create_lan` driver is neither `macvlan` nor `ipvlan`. Use --driver macvlan or --driver ipvlan. |
DX-1323 | invalid argument | network | 1 | parent NIC not found A macvlan/ipvlan network's parent NIC does not exist on this host. Pass a NIC that `ip link` on this host actually shows. |
DX-1324 | invalid argument | network | 1 | invalid macvlan/ipvlan subnet A macvlan/ipvlan subnet does not parse as a CIDR. Write it as e.g. 192.168.1.0/24. |
DX-1325 | invalid argument | network | 1 | invalid holder control command A line sent on the holder's control socket is not one this build recognises. Check the CLI and the holder are from the same build; an old holder may need a respawn. |
DX-1326 | invalid argument | network | 1 | invalid hex payload A hex-encoded payload on the holder control socket (a CNI conflist, a firewall spec) does not decode. This is an internal protocol error between the CLI and the holder; check they are the same build. |
DX-1327 | invalid argument | network | 1 | invalid FDB/overlay peer destination An FDB or overlay-peer destination is not a bare IP address. Pass a plain IPv4 address, with no other characters. |
DX-1328 | invalid argument | network | 1 | the default ingress bridge cannot be removed An attempt was made to remove the default ingress bridge, which every other network path depends on. Remove a user network instead; the default bridge is not removable. |
DX-1329 | invalid argument | network | 1 | VIP outside the ingress address space A load-balancer VIP is outside the ingress address space (10.200-254.x). Use an address inside the ingress range this engine reports. |
DX-1330 | invalid argument | network | 1 | invalid load-balancer spec An `lbset` backend list has a bad weight, a backend with no port, an invalid backend, or is empty. Write backends as ip:port[#weight], comma-separated, with at least one entry. |
DX-1331 | invalid argument | network | 1 | invalid port A port string given to the ingress dataplane (publish/unpublish/lbset) is not 1..65535. Pass a numeric port between 1 and 65535. |
DX-1332 | invalid argument | network | 1 | invalid protocol A protocol other than tcp/udp was given to a publish/unpublish call. Use tcp or udp. |
DX-1333 | invalid argument | network | 1 | invalid egress policy An egress policy is not allow, deny, or allowlist:<cidrs>. Use allow, deny, or allowlist:<comma-separated CIDRs>. |
DX-1334 | invalid argument | network | 1 | invalid egress hostname An `egress host` suffix is not a plain DNS name. Use a plain hostname/domain suffix, e.g. example.com. |
DX-1335 | invalid argument | network | 1 | IP outside the ingress address space A container/publish IP is outside the ingress address space (10.200-254.x). Attach the container to a network inside the ingress range this engine reports. |
DX-1336 | invalid argument | network | 1 | firewall applied with no IP apply_firewall/apply_firewall_all was called with an empty IP list. This is an internal call error; report it if you see it from the CLI. |
DX-1337 | invalid argument | network | 1 | invalid firewall spec A firewall spec (hex-decoded JSON sent to the holder) does not parse as the expected structure. Check the CLI and the holder are from the same build. |
DX-1338 | invalid argument | network | 1 | could not encode a firewall spec Encoding a container's firewall to send over the control socket failed. This is an internal call error; report it if you see it from the CLI. |
DX-1339 | invalid argument | network | 1 | no free ingress prefix No /16 prefix is left in the ingress address space for a new network. Remove an unused network (`delonix network rm`) to free a prefix. |
DX-1340 | invalid argument | network | 1 | IP does not belong to network A fixed IP given to attach a container is not inside the target network's subnet. Pass an address inside the network's own subnet (`delonix network inspect <name>`). |
DX-1341 | invalid argument | network | 1 | invalid gateway provider registration A GatewayProvider registration (ADR-0051) had no id, or claimed a name another provider already has. Fix the registration the message describes; this is a programming error in the process that registered it, not a manifest/flag. |
DX-1344 | invalid argument | network | 1 | network zone provider registration refused A process tried to register a SegmentProvider with an empty id, or one whose id/alias already belongs to a different provider. Fix the registration (an internal call error unless a third-party provider crate is involved). |
DX-1380 | invalid argument | network | 1 | the network intent cannot be served as written What a network document or providers.yaml asks for cannot be served as written: nothing names a provider for the role and nothing else decides (zero or several registered, or a providers.yaml without networkDefaults.<role>), or the provider rejected the fields sent (OPNsense answers with per-field validations). ADR-0059 D5 reason `invalid_intent`. Read the message: name the provider (networkDefaults.<role> in providers.yaml, or spec.provider where the Kind has it), or fix the fields the provider listed. |
DX-1401 | invalid argument | image | 1 | empty SBOM The image has no apk or dpkg package database, so there is nothing to scan for vulnerabilities. Scan an image built on a distribution with a package manager, or scan its base image instead. |
DX-1402 | invalid argument | image | 1 | invalid advisory database The advisory database the scanner loaded is not valid JSON. Sync it again with `delonix image scan --update --feed <url>`. |
DX-1403 | invalid argument | image | 1 | OSV feed is not JSON The feed given to the scanner could not be parsed as JSON. Check the --feed URL points at an OSV JSON export, not an HTML page. |
DX-1404 | invalid argument | image | 1 | OSV feed has the wrong shape The feed is JSON but neither an array of advisories nor an object with a vulns array. Point --feed at an OSV export: an array of advisories, or an object with a vulns array. |
DX-1405 | invalid argument | image | 1 | not an Odoo module The directory named as a module has no __manifest__.py. Point the scan at the module's own directory, the one holding __manifest__.py. |
DX-1406 | invalid argument | image | 1 | no Odoo module found No directory under the path given has a __manifest__.py. Point the scan at the directory that contains the modules. |
DX-1407 | invalid argument | image | 1 | invalid Dockerfile The build file does not parse, or asks for an instruction or flag this engine does not support. The message names the line. Fix the line the message names; `delonix build --help` lists what is supported. |
DX-1408 | invalid argument | image | 1 | invalid image archive The archive being loaded is incomplete or corrupt: a missing manifest, or a blob that does not hash to its name. Export the archive again from its source and load the new file. |
DX-1409 | invalid argument | image | 1 | a layer could not be packed or unpacked Reading, compressing or extracting a layer or a root filesystem failed. The message carries the underlying error. Read the error in the message; check free space in the state root (`delonix system df`) and try again. |
DX-1410 | invalid argument | image | 1 | image has no layers The image record has no layers to mount as a root filesystem. Pull or build the image again. |
DX-1411 | invalid argument | image | 1 | the state root cannot back an overlay The state root path contains a character (':') that the overlay mount options cannot express. Move the state root to a path without ':' (DELONIX_ROOT). |
DX-1412 | invalid argument | image | 1 | invalid signing key A signing or verification key is not a valid P-256 key in PEM, or could not be generated. Pass a cosign-compatible ECDSA P-256 key in PEM. |
DX-1413 | invalid argument | image | 1 | image not signed The registry has no cosign signature for the image's digest. Sign it with `delonix image sign`, or pull a signed image. |
DX-1414 | invalid argument | image | 1 | invalid signature A signature exists but does not verify against the given key, or its manifest or payload is malformed. Check the key is the one the image was signed with; do not run an image whose signature fails. |
DX-1415 | invalid argument | image | 1 | signature state unknown The registry did not answer the signature lookup, so whether the image is signed could not be decided. This is not a verdict. Retry when the registry is reachable; the message carries the registry's error. |
DX-1416 | invalid argument | image | 1 | image already signed A signature for this digest already exists. Pass --force to sign it again. |
DX-1417 | invalid argument | image | 1 | could not sign Producing or uploading the signature failed. Read the error in the message and check the registry login (`delonix image login`). |
DX-1501 | invalid argument | vm | 1 | not supported on this backend The pause, unpause, snapshot, restore or delete-snapshot verb asked for is not implemented by this VM's backend. Use a backend that supports it (libvirt supports the most), or drop the verb. |
DX-1502 | invalid argument | vm | 1 | invalid VM backend registration A backend registration had no id, claimed auto-selection from outside this crate, or claimed a name another backend already has. Fix the registration the message describes; this is a programming error in the process that registered it, not a manifest/flag. |
DX-1503 | invalid argument | vm | 1 | unknown VM backend The --backend/DELONIX_VM_BACKEND value does not name a registered backend. Use one of the backends the message lists. |
DX-1504 | invalid argument | vm | 1 | VM record names an unregistered backend The VM's own record names a backend this process has no registration for. Run a build/process that registers that backend, or recreate the VM with one that is registered here. |
DX-1505 | invalid argument | vm | 1 | requires the libvirt backend The VM's spec.volumes need virtio-9p, which the Cloud Hypervisor backend does not implement. Remove `backend: cloud-hypervisor`, or drop the volumes. |
DX-1506 | invalid argument | vm | 1 | VM socket path too long The VM's api-socket or console socket path would not fit in a UNIX socket's sun_path (108 bytes on Linux). Use a shorter VM name or a shorter DELONIX_ROOT. |
DX-1507 | invalid argument | vm | 1 | invalid VM name A VM name may only use letters, digits, dot, dash and underscore, with no path traversal. Pick a name made of [A-Za-z0-9._-] with no '/', '..', or leading '-'. |
DX-1508 | invalid argument | vm | 1 | namespace not enforceable on this backend The VM's backend does not put its VMs on this engine's SDN, so namespace isolation cannot be enforced. Use `--backend cloud-hypervisor`, or drop `--namespace`. |
DX-1509 | invalid argument | vm | 1 | --disk-size smaller than the base image A qcow2 overlay cannot be smaller than its backing file. Ask for a --disk-size at least as large as the base image. |
DX-1510 | invalid argument | vm | 1 | invalid snapshot name A VM snapshot name may only use letters, digits, dot, dash and underscore, with no path traversal. Pick a name made of [A-Za-z0-9._-] with no '/', '..', or leading '-'. |
DX-1511 | invalid argument | vm | 1 | --ip requires the libvirt nat mode A static IP is materialized as a DHCP reservation on the libvirt network, which only the nat/network net mode has. Drop --net-mode, or set it to nat, to use --ip; on a host bridge, reserve the IP on the LAN's own DHCP instead. |
DX-1512 | invalid argument | vm | 1 | invalid static IP The --ip value does not parse as an IPv4 address. Pass a dotted-quad IPv4 address. |
DX-1513 | invalid argument | vm | 1 | could not reserve the static IP virsh net-update refused the DHCP host reservation for this MAC/IP pair. Read the virsh reason in the message; the IP may be outside the network's subnet. |
DX-1514 | invalid argument | vm | 1 | live disk backup needs the libvirt backend A live (running-VM) disk backup uses virsh blockcommit, which only the libvirt backend has. Stop the VM and take an offline snapshot instead, or recreate it on the libvirt backend. |
DX-1515 | invalid argument | vm | 1 | VM not in the right state for this verb pause needs a running VM and unpause needs a paused one; the VM is in neither state. Check `delonix vm status <name>` and use the verb that matches its current state. |
DX-1516 | invalid argument | vm | 1 | could not copy the cloud-init user-data The file a --user-data override names could not be copied into the VM's seed directory. Check the path exists and is readable by this user. |
DX-1517 | invalid argument | vm | 1 | no such Proxmox node The node named in the target is not part of the cluster this url answers for. Point the target at a node `GET /nodes` on this cluster actually reports, or fix the url. |
DX-1518 | invalid argument | vm | 1 | invalid Proxmox url The target url has no scheme, a scheme other than https, or no host. Write it as https://<host>:8006, with no path. |
DX-1519 | invalid argument | vm | 1 | credential in the Proxmox url The url carries a username or password (userinfo), which is a credential hidden in the manifest instead of a kind: Secret. Remove the userinfo and pass the credential as a Proxmox API token or password secret. |
DX-1520 | invalid argument | vm | 1 | invalid Proxmox bridge name A bridge name is interpolated into the VM's net0 property, and has to be a valid Linux interface name. Use a name like vmbr0: letters, digits, '-', '_' or '.', up to 15 characters. |
DX-1521 | invalid argument | vm | 1 | invalid Proxmox node name A node name goes into a URL path on every call, and has to be what Proxmox itself accepts. Use letters, digits, '-' and '.', matching the node's name in `pvecm status`. |
DX-1522 | invalid argument | vm | 1 | invalid Proxmox disk spec A VM's disk on this backend has to name a template to clone or a storage and size on the node; a local path has no meaning there. Write `template:<vmid>` to clone a template, or `<storage>:<size-in-GiB>` for a fresh disk, e.g. local-lvm:8. |
DX-1523 | invalid argument | vm | 1 | invalid Proxmox snapshot name A snapshot name goes into a URL path and into Proxmox's own namespace, and 'current' is reserved for the live state. Use letters, digits, '-' and '_', and not 'current'. |
DX-1524 | invalid argument | vm | 1 | unsupported field on the Proxmox backend The manifest asks for a local kernel/initrd/seed/device, a QEMU tuning knob the node owns, or a libvirt-only escape hatch — none of which this remote backend can honour. Remove the field the message names, or use a local backend (`--backend libvirt`). |
DX-1525 | invalid argument | vm | 1 | VM has no Proxmox handle The VM's record carries no Proxmox handle, so it was not created by this backend and this backend does not know its vmid. Manage this VM with the backend that created it. |
DX-1526 | invalid argument | vm | 1 | Proxmox rejected the request The node answered HTTP 400/422: a parameter of the request is not acceptable to it; the message carries the node's own reason. Read the node's reason in the message and correct the field it names. |
DX-1527 | invalid argument | vm | 1 | unknown capability A `required_capabilities` entry (`vm create --require`, `spec.requiredCapabilities`) names something the capability catalog does not have — a typo, or a name from another catalog version. It is refused before any backend is asked. Use a name from `delonix provider ls` (the catalog version is in its header). |
DX-1528 | invalid argument | vm | 1 | invalid Proxmox firewall rule A rule of the node's OWN firewall (not this engine's SDN firewall) named a `type` other than 'in'/'out', or an `action` other than ACCEPT/DROP/REJECT — a firewall group's name is a different kind of value this client does not validate and does not accept. Use 'in' or 'out' for the type, and ACCEPT, DROP or REJECT for the action. |
DX-1529 | invalid argument | vm | 1 | invalid Proxmox cloud-init dump type cloudinit_dump's `type` has to be one of the three the node's cloud-init route accepts, and is refused here before any request goes to the node. Ask for 'user', 'network' or 'meta'. |
DX-1530 | invalid argument | vm | 1 | invalid Proxmox SDN zone or vnet id A zone or vnet id goes into a URL path and into the node's own SDN namespace, which Proxmox limits to a lowercase letter followed by up to 7 more lowercase letters or digits (8 characters total). Pick an id of at most 8 characters, starting with a lowercase letter, the rest lowercase letters or digits. |
DX-1531 | invalid argument | vm | 1 | invalid Proxmox firewall alias or ipset name An alias or IP-set name of the VM's OWN firewall (not this engine's SDN firewall) goes into a URL path and into the node's own namespace, which Proxmox limits to a letter followed by one or more letters, digits, '-' or '_' (at least 2 characters total). Pick a name that starts with a letter and has at least one more letter, digit, '-' or '_' after it. |
DX-1532 | invalid argument | vm | 1 | invalid Proxmox firewall address A CIDR/address given to a firewall alias or to one entry of a named IP set is not an IPv4/IPv6 address, optionally with a '/<prefix>' — the node's own alias/ipset routes reject it before anything else would. Give an IPv4 or IPv6 address, or a CIDR range such as '10.0.0.0/8'. |
DX-1533 | invalid argument | vm | 1 | invalid Proxmox SDN subnet CIDR An SDN subnet is named by a CIDR network (an IPv4 or IPv6 address with a prefix length), refused here before it goes into a request body or, with its `/` swapped for `-`, into a URL path. Give a CIDR like '10.0.0.0/24' or 'fd00::/64', with a prefix length valid for the address family. |
DX-1534 | invalid argument | vm | 1 | invalid Proxmox SDN address A plain IPv4/IPv6 address (a DHCP range end, a DNS server, an IPAM reservation, a fabric node's router address) or a MAC address that an SDN field takes did not parse as one, refused before it goes into a request body or a URL. Give the address without a prefix length ('10.0.0.50', 'fd00::5'), or the MAC as XX:XX:XX:XX:XX:XX. |
DX-1535 | invalid argument | vm | 1 | invalid Proxmox shutdown timeout A guest-driven shutdown or reboot was asked to wait longer than this client waits for any node task, so the client would give up while the node was still inside the task. Give a timeout shorter than the client's task deadline (600 seconds by default), or omit it to take the node's own default. |
DX-1536 | invalid argument | vm | 1 | invalid VM resize `vm resize` needs `--vcpus` and/or `--memory`; vCPUs have to be at least 1 and memory a number with an optional M/G suffix (`512M`, `4G`, `4Gi`). A value that does not parse is refused rather than read as a default. Pass `--vcpus <n>` (n ≥ 1) and/or `--memory <size>`, e.g. `--memory 4G`. |
DX-1537 | invalid argument | vm | 1 | invalid cloud-init change `vm cloud-init` needs `--hostname`, `--user` and/or `--ssh-key`; the hostname has to be a DNS label (letters, digits, '-', at most 63), the user a login name, each key one line. An appliance image does not run cloud-init and is refused. Give at least one of the three, in the form the guest accepts — e.g. `--hostname web-1 --ssh-key @~/.ssh/id_ed25519.pub`. |
DX-1538 | invalid argument | vm | 1 | invalid node to move the VM to `vm move --node` names the node of the VM's cluster the VM goes to. The name has to be a member of that cluster, online, and not the node the VM is already on; the engine never picks one. Pass another member of the cluster that is online — the node's own list is `pvecm nodes`, or `delonix provider describe proxmox --probe`. |
DX-1539 | invalid argument | vm | 1 | the local image could not be read A Proxmox VM created from an image of the engine's store is uploaded to the node first (ADR-0057). The file the image resolved to could not be opened or read, or it is empty. Check the image with `delonix image vm ls` and `delonix image vm describe <name>`; pull or build it again if the file is missing. |
DX-1540 | invalid argument | vm | 1 | the system container asks for something the node cannot hold A system container on a Proxmox node is always unprivileged: a privileged one would be a privilege decision on a remote host, with its own spike (ADR-0058). Its entrypoint is stored as one line split on spaces, so an argument with a space or a control character cannot be kept as written; its environment is a list of NAME=value, where the name is letters, digits and underscores. Leave `unprivileged` true, write the entrypoint as arguments without spaces (or wrap it in a script inside the image), and name each variable with letters, digits and underscores only. |
DX-1550 | invalid argument | vm | 1 | invalid Proxmox SDN controller, prefix list or route map A BGP/EVPN controller, prefix list or route map of the cluster's own SDN (not this engine's) was refused before any request: an id outside Proxmox's own format (a controller id starts with a letter; a prefix-list or route-map id is 1 to 32 letters, digits, '-' or '_', and the node reserves some), a missing field the controller type needs (EVPN: an ASN and exactly one of peers/fabric; BGP: a node, an ASN and peers), or an entry field the node would not accept (action other than permit/deny, a prefix length past the address family, an unknown match/set key). Correct the field the message names; the node's own `apidoc.js` lists the formats. |
DX-1551 | invalid argument | vm | 1 | invalid Proxmox vnet firewall rule A vnet's firewall filters traffic FORWARDED through the vnet and takes only 'forward' rules — the node refuses 'in' and 'out' there — with an action of ACCEPT, DROP or REJECT (a security group's name is not accepted by this client). Use the rule type 'forward' (the default) and ACCEPT, DROP or REJECT; for traffic to or from one VM, use the VM's own firewall. |
DX-1801 | invalid argument | security | 1 | invalid secret name A secret name may only use lowercase letters, digits, dot, dash and underscore, up to 64 characters. Pick a name made of [a-z0-9._-]. |
DX-1802 | invalid argument | security | 1 | invalid secret key A secret key must be a valid environment variable name: a letter or underscore, then letters, digits or underscores. Rename the key, for example DB_PASSWORD. |
DX-1803 | invalid argument | security | 1 | invalid credential name A credential name may only use lowercase letters, digits, dot, dash, underscore and colon. Pick a name made of [a-z0-9._:-]. |
DX-1804 | invalid argument | security | 1 | corrupted master key The host's master key file has the wrong size, so nothing encrypted with it can be read. Restore the key from a node snapshot (`delonix system snapshot restore`); without it the encrypted secrets are lost. |
DX-1805 | invalid argument | security | 1 | the secret vault could not encrypt or decrypt Encryption or decryption failed: a blob that is corrupt, or a key that is not the one it was sealed with. Check the master key is the host's own; recreate the secret if its file is corrupt. |
DX-1901 | invalid argument | host | 1 | AppArmor profile unavailable The requested AppArmor profile could not be loaded: AppArmor is not enabled on this host, apparmor_parser is not on PATH, or it refused the profile. Enable AppArmor on this host, install apparmor_parser, or pass --security-opt apparmor=unconfined. |
DX-1902 | invalid argument | host | 1 | no CDI spec found A --gpus/--device request named a CDI-qualified device, but this host has no generated CDI spec at all. Generate one with `nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml` (installing nvidia-container-toolkit first if needed). |
DX-2000 | invalid usage | engine | 2 | invalid usage The command line does not parse: an unknown subcommand, a missing argument or a flag this command does not take. Run the command with --help and follow its usage line. |
DX-2601 | invalid usage | stack | 2 | the plan has changes `stack plan --detailed-exitcode` found differences between the manifest and what is running. Not a failure. Review the plan, then run `delonix stack apply` if the changes are wanted. |
DX-3000 | not running | engine | 3 | not running The resource exists but is not running, and the operation needs it running. Start it (`delonix container start <name>`, `delonix vm start <name>`) and try again. |
DX-3101 | not running | container | 3 | container is not running The container exists, but the operation needs it running. Start it first (`delonix container start <name>`). |
DX-4000 | not found | engine | 4 | no such resource Nothing with that name or id exists in this scope. Check the name and the namespace with the matching `ls`, or create the resource first. |
DX-4101 | not found | container | 4 | no such container No container answers to that id, id prefix or name in this state root. List them with `delonix container ps -a`. |
DX-4102 | not found | container | 4 | CDI device not found The device name is not declared by any discovered CDI spec. Check the device name against the spec (`nvidia-ctk cdi list`), or regenerate it. |
DX-4201 | not found | volume | 4 | no such volume There is no volume with that name in this scope. List them with `delonix volume ls` (-A for every namespace), or create it with `delonix volume create`. |
DX-4202 | not found | volume | 4 | no such snapshot The volume has no snapshot with that name. List its snapshots with `delonix volume snapshot ls <volume>`. |
DX-4301 | not found | network | 4 | no such NetworkRoute There is no NetworkRoute between the given pair of networks. List routes with `delonix network route ls`, or create one with `delonix network route <from> <to>`. |
DX-4302 | not found | network | 4 | no such Service There is no Service of that name in that namespace. List services with `delonix get services`. |
DX-4303 | not found | network | 4 | ingress network does not exist The named network has no NetDef on this holder — it was never realized here, or was removed. Create it with `delonix network create <name>`, or use the default network. |
DX-4304 | not found | network | 4 | no such OPNsense API route The appliance answered HTTP 404 `{"errorMessage":"Endpoint not found"}` — the module/controller/command path does not exist on this OPNsense version. Check the path against `docs.opnsense.org/development/api.html` for the appliance's own version. |
DX-4401 | not found | image | 4 | no such image The image is not in the local store and the registry has no such tag. Check the reference, or pull it first (`delonix image pull`). |
DX-4402 | not found | image | 4 | image or repository not visible The registry does not show the repository or image to these credentials: it does not exist, or it is private. Log in with credentials that can see it (`delonix image login <registry>`). |
DX-4501 | not found | vm | 4 | no such VM There is no virtual machine with that name in this state root. List them with `delonix vm ls`, or create it with `delonix vm create`. |
DX-4502 | not found | vm | 4 | no such snapshot The VM has no snapshot with that name. List its snapshots with `delonix vm snapshot ls <vm>`. |
DX-4503 | not found | vm | 4 | no such snapshot The VM has no snapshot with that name on the Proxmox node. List its snapshots with `delonix vm snapshot ls <vm>`. |
DX-4504 | not found | vm | 4 | no such resource on the Proxmox node The node answered HTTP 404, or reported that the VM's configuration file does not exist (which it says with HTTP 500). Check the VM id in the record against `qm list` on the node; a VM removed on the node side leaves a record with nothing behind it. |
DX-4801 | not found | security | 4 | no such secret There is no secret with that name. List them with `delonix secret ls`, or create it with `delonix secret create`. |
DX-5000 | conflict | engine | 5 | conflict: already exists The name is already taken, or the desired state conflicts with what is there. Pick another name, remove the existing resource, or use the command's --force/--replace if it has one. |
DX-5101 | conflict | container | 5 | container already running The container is running, and the operation would remove or replace it without --force. Stop it first, or pass --force. |
DX-5301 | conflict | network | 5 | network already exists A NetworkStore network with that name already exists. Pick another name, or remove the existing one first (`delonix network rm <name>`). |
DX-5302 | conflict | network | 5 | no free subnet left The workload address space has no /16 left to hand a new network. Remove an unused network (`delonix network rm <name>`) to free a /16. |
DX-5303 | conflict | network | 5 | subnet overlaps an existing network The requested CIDR overlaps an existing network's subnet. Pick a CIDR that does not overlap any network `delonix network ls` already shows. |
DX-5304 | conflict | network | 5 | network subnet cannot be changed in place A network by this name already exists with a different subnet than the one asked for; workloads may already be addressed on it. Remove the network (`delonix network rm <name>`) and create it again with the new subnet. |
DX-5305 | conflict | network | 5 | base octet already used by another network The /16 a create_with_base call was given is already used by a different network. Pick a different base octet, or remove the network that already has it. |
DX-5306 | conflict | network | 5 | ingress network already realized on a different prefix An ingress NetDef is already realized on a prefix different from the one the registry now asks for. Remove the network (`delonix network rm <name>`) and create it again, or keep the recorded subnet. |
DX-5307 | conflict | network | 5 | network is in use The network still has containers, pod members or VMs attached, and removing it would leave them addressed on a bridge that no longer exists. Remove or disconnect what the message lists (`delonix container rm`, `delonix network disconnect`, `delonix vm rm`), then remove the network. |
DX-5308 | conflict | network | 5 | address already taken The address asked for is already leased to another container, or it belongs to the pool the network's DHCP server hands to VMs. Pick another address (`delonix network ipam ls` shows the leased ones), or leave the address to the engine. |
DX-5389 | conflict | network | 5 | the network provider holds something this engine will not overwrite The remote provider (an OPNsense appliance, a Proxmox cluster's SDN) has an object with the identity being ensured or removed and no owner mark of this engine (someone else's: never adopted by name, never deleted); or an object this engine created was edited there and no longer matches the manifest (there is no update in place); or it has staged changes that are not this engine's, and its commit applies everything staged at once. ADR-0059 D5 reason `provider_conflict`. The owner mark is a firewall category named `delonix-owner:<token>` (OPNsense) or `[delonix-owner:<token>]` at the end of a vnet alias (Proxmox). Read which of the three the message names: rename the object or remove the stale one on the provider; put an edited object back as declared, or replace it (`delonix stack apply --replace <Kind>/<name>`); or have whoever staged the other changes apply or discard them. Then apply again. |
DX-5501 | conflict | vm | 5 | VM name already used by another VM subsystem A VM record under this name already exists, created by the other (direct-QEMU) VM subsystem that shares the same vms/ folder. Remove it first (`delonix vm rm <name>`), or pick another name. |
DX-5502 | conflict | vm | 5 | VM snapshot name already used The VM already has a snapshot with that name. Pick another name, or remove the existing snapshot (`delonix vm snapshot rm`). |
DX-5503 | conflict | vm | 5 | snapshot name already used The VM already has a snapshot with that name on the Proxmox node. Pick another name, or remove the existing snapshot first. |
DX-5504 | conflict | vm | 5 | the Proxmox node reports a conflict The node answered HTTP 409, or reported that the resource already exists (which it says with HTTP 500). Pick another name or id, or remove what is already there. |
DX-5505 | conflict | vm | 5 | the VM must be stopped to resize it `vm resize` is a cold resize: it changes the definition a VM boots with. A running or paused guest would not see the change until its next reboot, so the verb refuses instead of reporting a resize that has not happened. Run `delonix vm stop <name>`, resize, then `delonix vm start <name>`. |
DX-5506 | conflict | vm | 5 | the VM must be stopped to change its cloud-init The guest reads cloud-init at boot: a running or paused VM would keep the old hostname and keys until its next reboot, so the verb refuses instead of reporting a change that has not reached the guest. Run `delonix vm stop <name>`, change it, then `delonix vm start <name>`. |
DX-5507 | conflict | vm | 5 | the VM cannot be moved as asked `vm move` was refused before it started: the VM is in the wrong power state for the move asked (`--live` needs it running, a move without `--live` needs it stopped), or the node's own precheck says the target cannot host it — local disks the target would have to copy, a storage the target does not have, or a local device. Stop or start the VM to match `--live`; for a precheck refusal, put the VM's disks on a storage the whole cluster shares, or remove the local device. |
DX-5515 | conflict | vm | 5 | the cluster's SDN configuration is locked Proxmox VE has one global lock over the SDN configuration (`POST /cluster/sdn/lock`). While another holder has it, every staged SDN write and the apply are refused; the node also says this when the token this client carried is no longer the lock's. Wait for the holder to apply or roll back; if the holder is gone, release the lock with its token (`DELETE /cluster/sdn/lock`), or with `force=1` once you are sure nobody is using it. |
DX-5516 | conflict | vm | 5 | the cluster has pending SDN changes The SDN lock was refused because the cluster already carries staged SDN changes nobody applied. Taking the lock anyway and applying would push that other work along with this change. Find who staged them (`delonix`'s pending-change list, or the node's SDN panel) and have them applied or rolled back first. |
DX-5517 | conflict | vm | 5 | the system container cannot be moved as asked `systemcontainer move` was refused before anything moved: the container is running and `--restart` was not given (the node cannot move a running container live), its volumes are on a storage the target does not share and `--with-local-disks` was not given (the node would copy them in full), or the node's own precheck does not list the target. Pass `--restart` to stop it, move it and start it on the target, or `--with-local-disks` to let the node copy its volumes, or pick a node the precheck allows. |
DX-6000 | unavailable | engine | 69 | unavailable on this host A tool, a backend or a kernel feature the operation needs is not present. Nothing about the arguments is wrong. Install what the message names (`delonix system info` shows what this host has) and run the command again. |
DX-6201 | unavailable | volume | 69 | could not build the TrueNAS HTTP client The local TLS/HTTP stack could not build a client for the request. Nothing about the manifest is wrong. Check the host's TLS libraries; `delonix system info` reports what this host has. |
DX-6202 | unavailable | volume | 69 | unsupported TrueNAS version This build only speaks one TrueNAS REST API major; the surface moves between majors. Point the manifest at a TrueNAS SCALE appliance on the supported major, or update this engine. |
DX-6301 | unavailable | network | 69 | 'wg' is not available on this host WireGuard node keys and encrypted overlay networks need the `wg` binary, which is not on PATH. Install wireguard-tools (Debian/Ubuntu: apt install wireguard-tools; Fedora/RHEL: dnf install wireguard-tools; Arch: pacman -S wireguard-tools). |
DX-6302 | unavailable | network | 69 | this management API route no longer changes the network The route wrote the dataplane without the container's record, so the next reapply undid it and a multi-homed workload kept its other addresses open. The management API is frozen (ADR-0041 D4) and refuses instead of writing half a policy. Use the CLI, which goes through the record: `delonix net ingress`/`net egress` for firewall and egress, `delonix network connect`/`disconnect` for extra networks, `delonix container rm`/`stop` to detach. |
DX-6381 | unavailable | network | 69 | no registered provider serves this network capability The provider that would serve the request is not registered for its role, or does not implement the operation: a document names one that is not registered, networkDefaults.<role> names one, or a resource's record names the provider that created it and that provider is not registered now. A default is never skipped to try another provider, and a recorded resource never moves (ADR-0059 D3). ADR-0059 D5 reason `unsupported_capability`: the remedy is another provider, not another argument. Configure the provider the message names (`delonix provider ls` lists what is registered), or name one that serves the role. |
DX-6383 | unavailable | network | 69 | the network provider could not be reached The request to the remote network provider (an OPNsense appliance) could not be sent or was not answered: connection refused, DNS, TLS, or a connection dropped mid-answer. When it dropped after a write was sent, whether the write landed is unknown; the next plan reads the provider again. ADR-0059 D5 reason `provider_unavailable`. Check that the provider's url in providers.yaml answers from this host, then plan and apply again. |
DX-6501 | unavailable | vm | 69 | VM backend not configured This build knows about the named backend, but nothing in this process has configured it (e.g. Proxmox with no target set). Configure it as the message describes, or use a backend that is already available. |
DX-6502 | unavailable | vm | 69 | no VM backend available Auto-detection found neither Cloud Hypervisor nor libvirt+qemu installed. Install cloud-hypervisor or libvirt+qemu. |
DX-6503 | unavailable | vm | 69 | no VM firmware found Booting a cloud image on Cloud Hypervisor without an explicit kernel needs a firmware, and none was given or found bundled. Reinstall (curl install.sh) to fetch rust-hypervisor-fw, pass --firmware <path>, or use --backend libvirt. |
DX-6504 | unavailable | vm | 69 | cloud-localds not found Generating a cloud-init NoCloud seed needs the cloud-localds tool, which is not on PATH. Install it (Debian/Ubuntu: cloud-image-utils, Fedora/Rocky: cloud-utils), or pass a ready-made seed. |
DX-6505 | unavailable | vm | 69 | could not build the Proxmox HTTP client The local TLS/HTTP stack could not build a client for the request. Nothing about the manifest is wrong. Check the host's TLS libraries; `delonix system info` reports what this host has. |
DX-6506 | unavailable | vm | 69 | Proxmox node unavailable The node answered HTTP 502/503/504: the API is up but cannot serve the request right now (pveproxy without a backend, node restarting). Retry later; check the node's services (`pveproxy`, `pvedaemon`) and the cluster's quorum. |
DX-6507 | unavailable | vm | 69 | capability not supported by the backend The backend this VM would run on does not mark a required capability usable on this host — or, with auto-detection, no available backend does. The message lists each unmet entry with the provider's own state and reason. It is the node contract's FAILED_PRECONDITION with reason CapabilityNotSupported (ADR-0050 D6). Pick a backend that has it (`delonix provider ls`, `--backend`), fix what the host lacks when the state is `unavailable-on-host`, or drop the requirement. |
DX-6508 | unavailable | vm | 69 | the Proxmox datacenter firewall is off A `NetworkPolicy` with `scope: vm` asked for rules on a VM of a Proxmox cluster whose datacenter-level firewall is disabled. With it off, no rule of any VM filters anything, so applying the policy would report protection that does not exist (ADR-0052). The engine never turns it on: that also changes what the cluster's own nodes accept. Enable the firewall at Datacenter level on the cluster (Datacenter › Firewall › Options, or `pvesh set /cluster/firewall/options --enable 1`), after checking the management rules for the nodes, then apply again. |
DX-6509 | unavailable | vm | 69 | the backup could not be taken with the guest's filesystem frozen A quiesced backup freezes the guest's filesystems through the QEMU guest agent for the instant the disk is copied, so the archive holds a consistent filesystem. The guest was not running, its agent did not answer, or the node's own backup log did not show the freeze and the thaw — and a backup that cannot be shown to be quiesced is not reported as one. Install and start `qemu-guest-agent` in the guest and set `agent=1` on the VM; for a stopped VM, a plain backup is already consistent. |
DX-6510 | unavailable | vm | 69 | the node's import storage does not accept images A Proxmox VM created from a local image is uploaded to a dir storage of the node under `import/`, and the node accepts that only on a storage whose content types include `import` (ADR-0057). The engine never changes a storage's content types: that is administering the node. Enable it on the node (`pvesm set <storage> --content <current types>,import`, or Datacenter › Storage › Edit › Content), or point `DELONIX_PROXMOX_IMPORT_STORAGE` / `storage.import` in providers.yaml at a storage that has it. |
DX-6511 | unavailable | vm | 69 | the node's import storage has no room for the image The image would be uploaded to the node's import storage, and that storage has less free space than the image. The upload is refused before it starts, because the node's own refusal would come after the bytes had been sent. Free space on the storage, or point `DELONIX_PROXMOX_IMPORT_STORAGE` / `storage.import` in providers.yaml at a storage with room. |
DX-6512 | unavailable | vm | 69 | the SDN apply ended OK but a node did not realize it An apply of the cluster's SDN configuration (`PUT /cluster/sdn`) forks one `reloadnetworkall` task, and that task ends OK when the entry node's reload succeeds — even if another node's reload failed. The engine then reads each online node's zone content, and at least one vnet was not `available` there. The message names each node, zone and vnet with the node's own reason. Read that node's 'reload network' task log (`pvesh get /nodes/<node>/tasks --typefilter srvreload`), fix what it names — commonly the `dnsmasq` package for a zone with `dhcp=dnsmasq`, or the `source /etc/network/interfaces.d/*` line in `/etc/network/interfaces` — and apply again. |
DX-6513 | unavailable | vm | 69 | the node's storage does not accept container archives A system container on a Proxmox node is created from an OCI archive the engine uploads to a storage of the node as a container template, and the node accepts that only on a storage whose content types include `vztmpl` (ADR-0058). The engine never changes a storage's content types: that is administering the node. Enable it on the node (`pvesm set <storage> --content <current types>,vztmpl`, or Datacenter › Storage › Edit › Content), or use a storage that has it. |
DX-6514 | unavailable | vm | 69 | the node's storage has no room for the container archive The container archive would be uploaded to a storage of the node, and that storage has less free space than the archive. The upload is refused before it starts, because the node's own refusal would come after the bytes had been sent. Free space on the storage, or use a storage with room. |
DX-7000 | permission denied | engine | 77 | permission denied The operating system refused on a permission: a file, a directory or a capability. Fix the permission on the path the message names, or run from a session that has it, and repeat. |
DX-7385 | permission denied | network | 77 | the network provider refused the credential The remote network provider refused what it was sent: OPNsense answers 401 for a key/secret it does not accept, a 302 to its login page when no credential arrived at all, and 403 for a key without the privilege the route needs (ADR-0051 phase 0). ADR-0059 D5 reason `provider_auth_failed`. Check the key and secret files named in providers.yaml, and that the API user holds the firewall privileges on the appliance. |
DX-8000 | timeout | engine | 124 | timed out The deadline passed with the work unfinished. Nothing said no; it may still be finishing. Wait and ask again, or raise the --timeout. Do not recreate the resource on top of one still coming up. |
DX-8101 | timeout | container | 124 | container still exiting after SIGKILL `rm -f` killed the container, but its process had not finished exiting when the deadline passed — usually stuck in the kernel flushing the container's filesystem to a busy disk. The container is still listed, so no live process goes untracked. Run the same `rm -f` again once the host's disk settles; it removes the container as soon as its process is gone. |
DX-8201 | timeout | volume | 124 | TrueNAS job timed out An asynchronous job on the appliance (permissions, dataset work) did not reach a terminal state before the deadline. It may still be finishing on the appliance; check it there before retrying. |
DX-8501 | timeout | vm | 124 | Proxmox task timed out A task on the node (create, start, snapshot, destroy) did not reach a terminal state before the deadline. It may still be finishing on the node; check the node's task log before retrying. |
DX-8502 | timeout | vm | 124 | Proxmox VM config lock stayed busy The node kept refusing because the VM's config lock was held (usually qmeventd cleaning up after a stop), past the retry window. Check the node's task log for this VM; something is still holding the lock. |
DX-9000 | system failure | engine | 1 | a system call failed The kernel refused an operation (clone, mount, setns…). The message carries the operation and the errno. Read the errno in the message; `delonix system info` checks the host requirements (user namespaces, cgroup delegation). |
DX-9001 | system failure | engine | 74 | I/O error The filesystem said no on a path the engine needs: a full disk, a missing directory, a bad mount. Check the path in the message and the free space of the state root (`delonix system df`). |
DX-9002 | system failure | engine | 1 | invalid state record A state record on disk could not be read or written as JSON: it is corrupt or from an incompatible version. Inspect the record the message names; restore it from a snapshot (`delonix system snapshot restore`) if it is corrupt. |
DX-9003 | system failure | engine | 1 | the state lock could not be taken The lock that serialises a read-modify-write of a state record could not be opened or taken, so the write was refused rather than risk losing a concurrent one. Check the state root is writable by this user and not on a filesystem without flock. |
DX-9004 | system failure | engine | 1 | no entropy from the kernel The kernel did not provide random bytes, which encryption and generated values need. Check getrandom(2) works on this host (a very old kernel or a restricted seccomp profile). |
DX-9201 | system failure | volume | 1 | a storage tool failed A host tool the volume needs (mount, mkfs.ext4, resize2fs, losetup…) failed or is missing. The message carries its own error. Read the tool's error in the message; mounting network volumes and hard quotas need CAP_SYS_ADMIN. |
DX-9202 | system failure | volume | 1 | TrueNAS request failed The HTTP request to the appliance could not be sent or answered (network, TLS, DNS). Check the target url and that the appliance is reachable from this host. |
DX-9203 | system failure | volume | 1 | TrueNAS answered with an HTTP error The appliance's REST API returned a non-2xx status; the message carries its own error body. Read the body in the message — TrueNAS puts the actionable detail there. |
DX-9204 | system failure | volume | 1 | could not read the TrueNAS response The appliance's answer was not the JSON this client expected. Check the appliance is on the supported major; the message carries the start of the body. |
DX-9205 | system failure | volume | 1 | TrueNAS job failed An asynchronous job on the appliance finished FAILED or ABORTED; the message carries its own reason. Read the appliance's reason in the message. |
DX-9206 | system failure | volume | 1 | TrueNAS job vanished The appliance stopped reporting a job before it reached a terminal state, so whether the work happened is unknown. Check the dataset/permissions on the appliance directly. |
DX-9207 | system failure | volume | 1 | TrueNAS dataset has no mountpoint The appliance reports the dataset with no mountpoint, so it cannot be shared or mounted. Check the dataset on the appliance; a mountpoint may need to be set explicitly. |
DX-9208 | system failure | volume | 1 | TrueNAS state disagreed with its own report The appliance reported an action as done, but a read-back immediately after disagrees (dataset missing after create, or still there after delete). Check the dataset on the appliance directly; nothing here was rolled back. |
DX-9301 | system failure | network | 1 | a network system call failed A host tool this engine shells out to for networking (ip, nft, wg, bridge, a CNI plugin, newuidmap/newgidmap, or a raw syscall) could not be run or exited badly. The message names the operation and carries the tool's own error. Read the operation and error in the message; check the tool is installed and the host's network state is sane. |
DX-9302 | system failure | network | 1 | could not build the OPNsense API client The local HTTP/TLS stack could not be built from the given Target (a malformed CA certificate, most likely). Check `ca_cert_pem`/`insecure_tls` on the Target; nothing on the appliance was reached. |
DX-9304 | system failure | network | 1 | OPNsense answered with an unexpected status A non-2xx HTTP status this client has no dedicated class for. The message carries the status and body. Read the status/body in the message; it may be a version this client has not been measured against (ADR-0051). |
DX-9307 | system failure | network | 1 | OPNsense response too large A body past the size this client reads into memory (16 MiB) — the appliance, or whatever answered in its name, is not one of the small JSON bodies this API normally returns. This should not happen against a real OPNsense; check nothing else is answering on that address. |
DX-9308 | system failure | network | 1 | OPNsense response did not parse The appliance's response body did not parse as the JSON this call expected. Read the raw body in the message; the appliance's API may have changed shape in a newer/older release than ADR-0051's Phase 0 measured (26.1.2). |
DX-9401 | system failure | image | 1 | registry error An OCI registry answered with an error, or could not be reached. Check the image reference, your login (`delonix image login`) and the network path to the registry. |
DX-9402 | system failure | image | 1 | a module tree could not be read Reading the module directory failed: a permission, a missing path or an I/O error. Check the path in the message is readable by this user. |
DX-9403 | system failure | image | 1 | content digest mismatch What the registry served does not hash to the digest that was pinned or declared. The content was refused. Do not work around it: the registry, a mirror or the network may be tampering. Pull again from a trusted source. |
DX-9404 | system failure | image | 1 | overlay mount failed Mounting the image's overlay root filesystem failed. Read the errno in the message; rootless overlay needs a kernel with unprivileged overlayfs (`delonix system info`). |
DX-9501 | system failure | vm | 1 | VM tool failed An external tool this VM's lifecycle depends on (virsh, qemu-img, the cloud-hypervisor process) could not be run or exited badly. Read the tool's own error in the message. |
DX-9502 | system failure | vm | 1 | Cloud Hypervisor API failed The running VM's Cloud Hypervisor VMM could not be reached over its local api-socket, or answered with a non-2xx status. Check the VM is still alive (`delonix vm status`); a vmm that crashed needs `delonix vm start`. |
DX-9503 | system failure | vm | 1 | VM disk corrupted after stop qemu-img check found a stopped Cloud Hypervisor VM's disk corrupted (BUG-VM-001) — a post-stop check, not the stop itself failing. Run `qemu-img check -r all` on the disk the message names; consider --backend libvirt for VMs that need reliable disk snapshots. |
DX-9504 | system failure | vm | 1 | snapshot needs a stopped VM The Cloud Hypervisor backend cannot snapshot/restore/delete-snapshot a running VM's disk: the vmm holds it exclusively. Stop the VM first (`delonix vm stop`), or use --backend libvirt for live checkpoints. |
DX-9505 | system failure | vm | 1 | no libvirt domain description on disk A stopped VM has no <name>.xml recorded, so there is nothing to redefine for a snapshot/restore verb. Start the VM once (`delonix vm start <name>`); the description is written then and stays from then on. |
DX-9506 | system failure | vm | 1 | VM admission refused The host-protection check refused to boot a VM whose requested memory does not fit in what the host has available. Stop other VMs/containers, reduce the memory, or lower DELONIX_VM_RESERVE_MIB (at your own risk). |
DX-9507 | system failure | vm | 1 | live disk backup failed A step of the live-disk-backup pipeline (list disks, stage the overlay, snapshot, copy, pivot) failed. Read the step's own error in the message; the VM is left running either way. |
DX-9508 | system failure | vm | 1 | could not run cloud-localds The cloud-localds tool could not be started, for a reason other than being missing. Read the error in the message; check the host's permissions and free space. |
DX-9509 | system failure | vm | 1 | cloud-localds failed The cloud-localds tool ran and exited with a non-zero status while building the seed ISO. Check the cloud-init user-data/meta-data/network-config it was given are well-formed. |
DX-9510 | system failure | vm | 1 | Proxmox request failed The HTTP request to the node could not be sent or answered (network, TLS, DNS). Check the target url and that the node is reachable from this host. |
DX-9511 | system failure | vm | 1 | Proxmox answered with an HTTP error The node's REST API returned a non-2xx status; the message carries its own error body. Read the body in the message — Proxmox puts the actionable detail there. |
DX-9512 | system failure | vm | 1 | Proxmox answer had the wrong shape The node's response parsed as JSON but did not carry what a specific call needed (a VM id, a task id). Check the node's Proxmox VE version matches what this build expects. |
DX-9513 | system failure | vm | 1 | Proxmox task failed A task on the node (create, start, snapshot, destroy) finished with a verdict other than OK; the message carries the node's own reason. Read the node's reason in the message, or check its task log. |
DX-9514 | system failure | vm | 1 | could not read the Proxmox response The node's answer was not the JSON this client expected. Check the node's Proxmox VE version matches what this build expects; the message carries the start of the body. |
DX-9515 | system failure | vm | 1 | Proxmox refused the credential The node answered HTTP 401: the API token is wrong or revoked, or the ticket could not be renewed. Check the token id and secret (or the account), and that the token is not expired on the node. |
DX-9516 | system failure | vm | 1 | Proxmox denied the operation The node answered HTTP 403: the credential is valid but lacks the privilege this route needs (the message names the route). Grant the role the route needs to the token or account on the node — least privilege, one role per use. |
DX-9517 | system failure | vm | 1 | Proxmox response exceeded the size bound The node's answer was larger than this client is willing to read into memory. Check what the node is serving on that route; an answer this large is not one the engine expects. |
DX-9525 | system failure | vm | 1 | discarding a failed SDN change failed too A change inside an SDN transaction failed, and the rollback that should have discarded what it had staged (`POST /cluster/sdn/rollback`) failed as well: pending changes, and possibly the SDN lock, are left on the cluster. The message names both failures and the lock token. Roll back by hand with the token the message names (`POST /cluster/sdn/rollback` with `lock-token` and `release-lock=1`), then retry the change. |
DX-9901 | system failure | host | 1 | a container-runtime system call failed A kernel operation this crate performs to build or manage a container (clone, mount, setns, a cgroup or /proc write) failed. The message carries the operation and the errno. Read the errno in the message; `delonix system info` checks the host requirements (user namespaces, cgroup delegation). |
Códigos retirados
Um número nunca muda de significado nem é reutilizado. Quando uma falha passa a ter outro número, o antigo fica aqui com o seu texto e o código que o substituiu, e delonix explain continua a responder-lhe. A D5 do ADR-0059 juntou as falhas dos providers de rede no bloco de reasons DX-C380…DX-C399.
Retired codes
A number never changes meaning and is never reused. When a failure gets another number, the old one stays here with its text and the code that replaced it, and delonix explain still answers it. ADR-0059 D5 folded the network provider failures into the reason block DX-C380…DX-C399.
| Código | Substituído por | Última release | Mensagem e significado |
|---|---|---|---|
DX-1342 | DX-6381 | v4.5.0 | não suportado por este provedor de gateway A operação de alias, regra ou commit pedida não está implementada por este GatewayProvider (ADR-0051) — o provider nativo só responde a id()/available(). |
DX-1343 | DX-1380 | v4.5.0 | o OPNsense rejeitou os campos enviados A appliance respondeu HTTP 200 com `{"result":"failed","validations":{...}}` — um erro de validação por campo, não uma falha de transporte (ADR-0051 Fase 0, medido ao vivo). |
DX-1345 | DX-1380 | v4.5.0 | nenhum provider de zona de rede configurado Foi aplicado um `kind: NetworkZone`, não há providers.yaml em vigor e o runtime não tem nenhum SegmentProvider registado — o Kind não nomeia provider nenhum, de propósito, para que decida a configuração do próprio runtime. |
DX-1346 | DX-1380 | v4.5.0 | provider de zona de rede ambíguo Está registado mais de um SegmentProvider, não há providers.yaml em vigor, e o `kind: NetworkZone` não tem campo para escolher um pelo nome. |
DX-1347 | DX-1380 | — | nenhum provider responde a este papel de rede Nada nomeia um provider para o papel: há um providers.yaml em vigor sem networkDefaults.<papel>, ou um NetworkGateway não nomeia provider e estão registados zero ou vários providers de gateway (ADR-0059 D3). |
DX-1348 | DX-6381 | — | o provider de rede nomeado não está registado Um documento nomeia um provider que não está registado para o seu papel (ADR-0059 D3). |
DX-5340 | DX-5389 | v4.5.0 | objecto remoto que não pertence a este motor Já existe no provider remoto — um appliance OPNsense, a SDN de um cluster Proxmox — um objecto com o nome (ou a descrição de regra) que se pediu para garantir ou remover, sem a marca de posse deste motor. É de outra pessoa: este motor recusa adoptá-lo pelo nome, e nunca o apaga. |
DX-5341 | DX-5389 | v4.5.0 | objecto remoto divergiu do declarado Um objecto que este motor criou no provider remoto foi editado lá e já não corresponde ao manifesto. Este motor não tem actualização no lugar para esse provider, por isso o objecto nem é sobrescrito nem é dado como presente. |
DX-5342 | DX-5389 | v4.5.0 | o provider remoto tem alterações preparadas que não são deste motor O provider remoto aplica de uma vez tudo o que está preparado (`filter/apply` e `alias/reconfigure` do OPNsense, `PUT /cluster/sdn` do Proxmox). Há outras alterações preparadas à espera, por isso aplicar agora empurraria o trabalho a meio de outra pessoa junto com o deste motor. |
DX-6303 | DX-6381 | — | o default de rede nomeia um provider que não está registado O networkDefaults.<papel> do providers.yaml nomeia um provider que não está registado para esse papel. Um default nunca é saltado para se tentar outro provider (ADR-0059 D3). |
DX-6304 | DX-6381 | — | o provider que criou este recurso não está registado O registo do recurso nomeia o provider que o serviu, e esse provider não está registado agora. Um recurso registado nunca muda de provider quando um default muda (ADR-0059 D3). |
DX-9303 | DX-6383 | v4.5.0 | o pedido ao OPNsense não pôde ser enviado nem respondido Uma falha ao nível de transporte (DNS, TCP, TLS) a falar com a API REST da appliance — não é um estado que a própria appliance tenha devolvido. |
DX-9305 | DX-7385 | v4.5.0 | o OPNsense recusou a credencial HTTP 401 (um par key/secret errado) ou HTTP 302 (nenhum cabeçalho Authorization enviado, redireccionado para o login da GUI) — os dois medidos ao vivo contra uma appliance real (ADR-0051 Fase 0). |
DX-9306 | DX-7385 | v4.5.0 | o OPNsense recusou a operação HTTP 403: uma key/secret válida sem o privilégio que esta rota exige. |
| Code | Replaced by | Last release | Message and meaning |
|---|---|---|---|
DX-1342 | DX-6381 | v4.5.0 | not supported by this gateway provider The alias, rule or commit operation asked for is not implemented by this GatewayProvider (ADR-0051) — the native provider answers only id()/available(). |
DX-1343 | DX-1380 | v4.5.0 | OPNsense rejected the fields sent The appliance answered HTTP 200 with `{"result":"failed","validations":{...}}` — a per-field validation error, not a transport failure (ADR-0051 Phase 0, measured live). |
DX-1345 | DX-1380 | v4.5.0 | no network zone provider configured `kind: NetworkZone` was applied, no providers.yaml is in force, and the runtime has no SegmentProvider registered — the Kind names no provider itself, on purpose, so the runtime's own configuration decides. |
DX-1346 | DX-1380 | v4.5.0 | ambiguous network zone provider More than one SegmentProvider is registered, no providers.yaml is in force, and `kind: NetworkZone` has no field to pick one by name. |
DX-1347 | DX-1380 | — | no provider answers this network role Nothing names a provider for the role: a providers.yaml is in force without networkDefaults.<role>, or a NetworkGateway names no provider while zero or several gateway providers are registered (ADR-0059 D3). |
DX-1348 | DX-6381 | — | the named network provider is not registered A document names a provider that is not registered for its role (ADR-0059 D3). |
DX-5340 | DX-5389 | v4.5.0 | remote object not owned by this engine An object with the name (or rule description) being ensured or removed already exists on the remote provider — an OPNsense appliance, a Proxmox cluster's SDN — without this engine's owner mark. It belongs to someone else, and this engine refuses to adopt it by name, and never deletes it. |
DX-5341 | DX-5389 | v4.5.0 | remote object drifted from the declaration An object this engine created on the remote provider was edited there, and no longer matches the manifest. The provider has no update in place in this engine, so the object is neither overwritten nor reported as present. |
DX-5342 | DX-5389 | v4.5.0 | remote provider has staged changes that are not this engine's The remote provider applies everything that is staged at once (OPNsense `filter/apply` and `alias/reconfigure`, Proxmox `PUT /cluster/sdn`). Other staged changes are waiting there, so committing now would push someone else's half-finished work along with this engine's. |
DX-6303 | DX-6381 | — | the network default names a provider that is not registered networkDefaults.<role> in providers.yaml names a provider that is not registered for that role. A default is never skipped to try another provider (ADR-0059 D3). |
DX-6304 | DX-6381 | — | the provider that created this resource is not registered The resource's record names the provider that served it, and that provider is not registered now. A recorded resource never moves to another provider when a default changes (ADR-0059 D3). |
DX-9303 | DX-6383 | v4.5.0 | the request to OPNsense could not be sent or answered A transport-level failure (DNS, TCP, TLS) talking to the appliance's REST API — not a status the appliance itself returned. |
DX-9305 | DX-7385 | v4.5.0 | OPNsense refused the credential HTTP 401 (a wrong key/secret pair) or HTTP 302 (no Authorization header sent at all, redirected toward the GUI login) — both measured live against a real appliance (ADR-0051 Phase 0). |
DX-9306 | DX-7385 | v4.5.0 | OPNsense refused the operation HTTP 403: a valid key/secret without the privilege this route needs. |