▲ Delonix Docs
v0.1.0

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ódigoClasseDomínioSaídaMensagem, significado, o que fazer
DX-0000sucessomotor0sucesso
O comando fez o que lhe foi pedido.
Nada.
DX-1000argumento inválidomotor1argumento 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-1101argumento inválidocontainer1nome 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-1102argumento inválidocontainer1limite 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-1103argumento inválidocontainer1limite 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-1104argumento inválidocontainer1peso 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-1105argumento inválidocontainer1conjunto 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-1106argumento inválidocontainer1argumento 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-1107argumento inválidocontainer1comando 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-1108argumento inválidocontainer1sem 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-1109argumento inválidocontainer1caminho 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-1110argumento inválidocontainer1origem 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-1111argumento inválidocontainer1o 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-1112argumento inválidocontainer1montagem 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-1113argumento inválidocontainer1desmontagem 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-1114argumento inválidocontainer1nome 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-1115argumento inválidocontainer1colocaçã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-1116argumento inválidocontainer1grupo de cgroup inválido
O container nomeia um grupo de cgroup (`cgroup_parent`) cujo nome não é um único segmento de caminho seguro ([a-z0-9._-], no máximo 64 bytes, nem `.`/`..`, sem começar por `-`), ou cujo tecto agregado de memória, CPU ou processos não se lê. Nada é colocado: um nome que podia sair da base do motor, ou um tecto que o kernel não receberia, é recusado em vez de descartado.
Usa um nome de grupo feito de [a-z0-9._-]; dá a memória em bytes ou com sufixo (1G, 512Mi), o CPU como número decimal de cores (0.5, 2) e os processos como número inteiro ou `max`.
DX-1201argumento inválidovolume1nome 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-1202argumento inválidovolume1volume 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-1203argumento inválidovolume1registo 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-1204argumento inválidovolume1nome 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-1205argumento inválidovolume1quota 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-1206argumento inválidovolume1quota 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-1207argumento inválidovolume1volume 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-1208argumento inválidovolume1nome 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-1209argumento inválidovolume1especificaçã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-1210argumento inválidovolume1opçã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-1211argumento inválidovolume1o 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-1212argumento inválidovolume1quota 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-1213argumento inválidovolume1url 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-1214argumento inválidovolume1credencial 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-1215argumento inválidovolume1credencial 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-1216argumento inválidovolume1nome 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-1217argumento inválidovolume1o pedido de pool de armazenamento não pode ser servido como está escrito
Um `kind: StoragePool`, um `spec.pool` ou um `--pool` traz algo que um pedido de pool não pode trazer: um dispositivo, um caminho ou um comando (esses são do administrador, na allowlist), um tamanho em falta ou que não se lê, ou um pool ao lado de outro suporte para o mesmo volume (ADR-0067 D2).
Nomeia só o pool; dá um `size` ao volume; e mantém `pool` separado de `nfs`/`cifs`/`webdav`/`share`/`provision`/`quota`.
DX-1218argumento inválidovolume1a allowlist de pools de armazenamento não pode ser usada
A allowlist de pools de armazenamento do administrador existe e é recusada: não se lê, nomeia um campo que ninguém definiu, falta a uma entrada o que o seu driver precisa, ou o ficheiro pode ser escrito por alguém que não é o dono (ADR-0067 D3).
Corrige o ficheiro que a mensagem nomeia (`/etc/delonix/storage-pools.yaml`, a não ser que DELONIX_STORAGE_POOLS_FILE diga outro) e mantém-no com modo 0644, do root ou do utilizador que corre o motor.
DX-1219argumento inválidovolume1registo de driver de pool de armazenamento recusado
Um driver de pool de armazenamento foi registado sem id. É um erro de programação no processo que o registou, não no que foi pedido.
Reporta-o: a raiz de composição regista os drivers, e um deles tem o id vazio.
DX-1220argumento inválidovolume1a utilização não pôde ser medida por completo
Um directório dentro do volume não pôde ser lido (normalmente dados de subuid de um container), por isso a utilização medida é um limite inferior, não o total real — encolher com um número não verificado pode truncar dados.
Corre como um utilizador que consiga ler todos os ficheiros do volume, ou verifica o tamanho real de outra forma antes de encolher.
DX-1221argumento inválidovolume1o helper de armazenamento recusou o pedido
O helper privilegiado de armazenamento leu um pedido que não serve: não se interpreta, nomeia um campo que o protocolo não tem, nomeia uma operação que o socket não aceita (criar e destruir pools são comandos do administrador, nunca pedidos pelo socket), ou traz um pool, volume, tamanho ou state root fora do que o protocolo aceita (ADR-0067 D3). Nada foi feito.
Usa os comandos do próprio motor (`delonix volume create --pool`) em vez de escrever no socket do helper; um administrador cria ou destrói um pool num terminal com `delonix-storage-helper create-pool|destroy-pool <nome>`.
DX-1301argumento inválidorede1chave 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-1302argumento inválidorede1configuraçã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-1303argumento inválidorede1nã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-1304argumento inválidorede1resultado 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-1305argumento inválidorede1plugin 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-1306argumento inválidorede1chave 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-1307argumento inválidorede1especificaçã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-1308argumento inválidorede1intervalo 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-1309argumento inválidorede1especificaçã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-1310argumento inválidorede1o 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-1311argumento inválidorede1nome 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-1312argumento inválidorede1nome 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-1313argumento inválidorede1subnet 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-1314argumento inválidorede1subnet 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-1315argumento inválidorede1gateway 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-1316argumento inválidorede1octeto 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-1317argumento inválidorede1sem 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-1318argumento inválidorede1chave 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-1319argumento inválidorede1VNI 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-1320argumento inválidorede1nã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-1321argumento inválidorede1peer 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-1322argumento inválidorede1driver de rede desconhecido
Um driver de `create_lan` não é nem `macvlan` nem `ipvlan`.
Usa --driver macvlan ou --driver ipvlan.
DX-1323argumento inválidorede1NIC 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-1324argumento inválidorede1subnet 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-1325argumento inválidorede1comando 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-1326argumento inválidorede1payload 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-1327argumento inválidorede1destino 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-1328argumento inválidorede1a 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-1331argumento inválidorede1porta 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-1332argumento inválidorede1protocolo inválido
Foi dado um protocolo que não tcp/udp a uma chamada de publish/unpublish.
Usa tcp ou udp.
DX-1333argumento inválidorede1polí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-1334argumento inválidorede1hostname 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-1335argumento inválidorede1IP 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-1336argumento inválidorede1firewall 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-1337argumento inválidorede1especificaçã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-1338argumento inválidorede1nã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-1339argumento inválidorede1sem 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-1340argumento inválidorede1o 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-1341argumento inválidorede1registo 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-1344argumento inválidorede1registo 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-1349argumento inválidorede1o URL do OPNsense mandaria a chave da API em claro
O URL do OPNsense não é https://, não nomeia um host, ou traz userinfo (`user:pass@`). O par key/secret vai no cabeçalho Authorization de cada pedido, por isso HTTP simples entrega-o a qualquer coisa no caminho, e userinfo é uma palavra-passe na configuração com outro nome.
Usa https://<host> (com `tls.insecureSkipVerify: true` ou um `caFile` para o certificado auto-assinado da appliance) e mantém a credencial em `auth`.
DX-1360argumento inválidorede1conjunto de VIP inválido
Um conjunto de VIP (`network vip-pool set`, `DELONIX_SERVICE_VIP_CIDR`) não é um prefixo IPv4 privado (RFC 1918 ou 100.64.0.0/10) entre /16 e /29 escrito com os bits de host a zero, ou dois conjuntos sobrepõem-se (ADR-0066 D2).
Indica um ou mais prefixos privados sem sobreposição, como 10.90.0.0/16.
DX-1361argumento inválidorede1VIP fora do conjunto
O `spec.vip` de um Service não está dentro de nenhum conjunto de VIP configurado, ou é o endereço de rede, o primeiro ou o de broadcast do conjunto.
Escolhe um endereço dentro do conjunto que `delonix network vip-pool show` mostra, ou tira o `spec.vip` e deixa o motor escolher.
DX-1380argumento inválidorede1a 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-1401argumento inválidoimagem1SBOM 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-1402argumento inválidoimagem1base 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-1403argumento inválidoimagem1o 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-1404argumento inválidoimagem1o 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-1405argumento inválidoimagem1nã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-1406argumento inválidoimagem1nenhum 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-1407argumento inválidoimagem1Dockerfile 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-1408argumento inválidoimagem1arquivo 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-1409argumento inválidoimagem1nã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-1410argumento inválidoimagem1imagem sem layers
O registo da imagem não tem layers para montar como rootfs.
Descarrega ou constrói a imagem outra vez.
DX-1411argumento inválidoimagem1o 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-1412argumento inválidoimagem1chave 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-1413argumento inválidoimagem1imagem 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-1414argumento inválidoimagem1assinatura 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-1415argumento inválidoimagem1estado 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-1416argumento inválidoimagem1imagem já assinada
Já existe uma assinatura para este digest.
Usa --force para a assinar outra vez.
DX-1417argumento inválidoimagem1nã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-1418argumento inválidoimagem1uma layer expande para além do limite de extracção
Uma layer tem mais bytes descomprimidos ou mais entradas do que os limites de extracção permitem, por isso foi recusada enquanto era lida, antes de poder encher o disco. Um blob pequeno pode expandir para terabytes; são os limites que o impedem.
Usa uma imagem mais pequena. Se a imagem é de confiança e é mesmo tão grande, aumenta DELONIX_LAYER_MAX_BYTES ou DELONIX_LAYER_MAX_ENTRIES.
DX-1501argumento inválidovm1nã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-1502argumento inválidovm1registo 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-1503argumento inválidovm1backend 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-1504argumento inválidovm1o 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-1505argumento inválidovm1exige 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-1506argumento inválidovm1caminho 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-1507argumento inválidovm1nome 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-1508argumento inválidovm1namespace 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-1509argumento inválidovm1--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-1510argumento inválidovm1nome 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-1511argumento inválidovm1--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-1512argumento inválidovm1IP 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-1513argumento inválidovm1nã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-1514argumento inválidovm1o 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-1515argumento inválidovm1VM 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-1516argumento inválidovm1nã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-1517argumento inválidovm1nã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-1518argumento inválidovm1url 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-1519argumento inválidovm1credencial 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-1520argumento inválidovm1nome 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-1521argumento inválidovm1nome 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-1522argumento inválidovm1spec 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-1523argumento inválidovm1nome 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-1524argumento inválidovm1campo 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-1525argumento inválidovm1VM 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-1526argumento inválidovm1o 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-1527argumento inválidovm1capacidade 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-1528argumento inválidovm1regra 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-1529argumento inválidovm1tipo 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-1530argumento inválidovm1id 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-1531argumento inválidovm1nome 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-1532argumento inválidovm1endereç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-1533argumento inválidovm1CIDR 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-1534argumento inválidovm1endereç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-1535argumento inválidovm1tempo 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-1536argumento inválidovm1redimensionamento 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-1537argumento inválidovm1alteraçã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-1538argumento inválidovm1nó 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-1539argumento inválidovm1nã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 vm image ls` e `delonix vm image describe <nome>`; volta a descarregá-la ou a construí-la se o ficheiro faltar.
DX-1540argumento inválidovm1o 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-1550argumento inválidovm1controlador, 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-1552argumento inválidovm1a firewall de vnet do Proxmox não é escrita por este motor
Uma escrita na firewall própria de uma vnet do Proxmox — as opções, uma regra nova ou uma regra alterada — é recusada antes de qualquer pedido, sejam quais forem os campos. Se uma regra de vnet filtra alguma coisa é decidido nó a nó pela opção `nftables` da firewall do host, em `/nodes/{node}/firewall`, que este motor não lê (ADR-0049 D3: administração do host); com a firewall iptables por omissão, o nó guarda a regra e não filtra nada. Uma escrita que poderia ser reportada como uma protecção que não existe é recusada em vez disso. Mesmo onde é aplicada, uma regra de vnet filtra o tráfego em bridge entre convidados dessa vnet, não o tráfego encaminhado entre vnets.
Para o tráfego de ou para um convidado, usa a firewall dele (`NetworkPolicy` com `scope: vm` ou `scope: systemcontainer`). Escrever a firewall de uma vnet exige uma decisão do dono para ler primeiro as opções de firewall do nó (um adendo ao ADR-0049).
DX-1601argumento inválidostack1fonte GitOps inválida
Uma `kind: GitOpsSource` foi recusada antes de se obter seja o que for (ADR-0021): um URL que não é file:///, https:// nem ssh:// (ou que leva credenciais, ou que se lê como opção), uma ref que não é refs/heads/<n> nem refs/tags/<n>, um caminho que sai do repositório, um intervalo fora de 15s–24h, uma fonte ssh:// sem chave e sem chaves de host fixadas, commits assinados sem chaves de confiança, uma política de segurança que nomeia uma acção ou um Kind que não pode, ou um segredo referido que não existe no nó.
Corrige o campo que a mensagem nomeia. As credenciais nomeiam-se (`secretRef`, `knownHostsRef`, `trustedKeysRef`) e criam-se primeiro no nó, nunca vêm no URL nem no repositório.
DX-1602argumento inválidostack1o commit foi recusado — nada foi aplicado
Uma passagem de uma fonte GitOps leu o commit e recusou-o antes de aplicar seja o que for: o caminho está vazio ou não existe, há debaixo dele um symlink, um submódulo, um ponteiro LFS ou material de chave privada, o YAML não carrega, um documento é recusado pela guarda das fontes pull (um Kind que uma fonte nunca aplica, acesso ao host, a credencial da própria fonte, outra fonte, um namespace que não é o da fonte), ou o grafo ou o plano falham. A stack em execução fica intacta.
Lê as linhas que a passagem imprimiu acima do erro, ou `delonix gitops status`, corrige o repositório e empurra um commit novo — a próxima passagem apanha-o.
DX-1603argumento inválidostack1a fonte passa um limite do que uma passagem lê
Uma passagem recusa o que não limitaria: mais de 4096 entradas debaixo do caminho, mais de 256 ficheiros de manifesto, um ficheiro de manifesto acima de 1 MiB ou 8 MiB ao todo, uma resposta do git maior que o seu tecto, ou um repositório obtido acima de 256 MiB (o espelho é então removido).
Aponta `spec.source.path` para o directório que tem os manifestos, e mantém os ficheiros grandes fora dele.
DX-1604argumento inválidostack1o plano traz uma acção que a política de segurança bloqueia — nada foi aplicado
O commit planeou uma acção que o `spec.safety` da fonte não permite: `Adopt`, `Replace` ou `Reboot` fora de `allow`, um `Conflict` com outra stack, ou mais remoções do que `maximumDeletes`. Uma passagem aplica o plano inteiro ou nada dele.
Se a acção é desejada, permite-a no nó (`spec.safety.allow`, `prune`, `maximumDeletes`) e aplica a fonte; senão, reverte o commit.
DX-1701argumento inválidocluster1CNI de cluster desconhecida
O `spec.cni` (ou `--cni`) nomeia a rede dos pods que o motor instala nos nós do cluster. Os valores que existem são `default` (a do próprio motor: kindnet no modo kind, uma bridge local ao nó num cluster kubeadm de um só nó), `none` (não instala nada; o operador aplica a sua) e os perfis seleccionáveis `cilium`, `calico` e `flannel`, cada um fixado a uma versão e ao digest do artefacto. Qualquer outro valor não instalava nada nem o dizia, o que deixa todos os nós `NotReady`.
Usa um de `default`, `none`, `cilium`, `calico`, `flannel`. O `delonix cluster network profiles` imprime cada um com a versão fixada e o nível de suporte; para correr uma CNI que este motor não traz, usa `none` e aplica o manifesto dela depois de o cluster estar de pé.
DX-1702argumento inválidocluster1uma opção de rede que o perfil escolhido não lê
Um campo de `spec.network` foi posto a algo que o perfil de rede escolhido não renderiza: um `dataplane` fora dos modos do perfil, um modo de `kubeProxy` que ele não implementa, uma extensão (`hubble`, `multus`) que precisa de outra CNI principal ou de uma combinação que nunca foi medida, um nome de interface fora do limite do próprio kernel, ou qualquer botão em `cni: default`/`cni: none`, que não instalam add-on nenhum e o ignorariam. Os dataplanes encaminhados (`native`, BGP) estão ausentes de propósito: exigem que a rede em volta do cluster transporte as rotas dos pods, o que este motor não configura e não vai assumir.
A mensagem nomeia o campo e lista os valores que o perfil aceita. Remove o campo, ou escolhe um perfil que o leia.
DX-1703argumento inválidocluster1a MTU dos pods não cabe no encapsulamento
O `spec.network.mtu` está fora do intervalo 1280-9000, ou não deixa espaço para o encapsulamento escolhido na MTU do próprio nó (VXLAN e Geneve levam 50 bytes, IP-in-IP 20). Uma MTU que não cabe não falha: o dataplane sobe e descarta em silêncio os pacotes grandes, o que se lê como lentidão inexplicada e não como erro — a mesma armadilha que o `docs/guia-rede.md` já registra para o overlay cifrado deste motor.
Omite o `spec.network.mtu` e deixa o bootstrap calculá-lo a partir da MTU do nó e do encapsulamento, ou põe-no no máximo em `nodeMtu` menos o overhead que a mensagem nomeia. Se os nós não correm a 1500, declara o valor real em `spec.network.nodeMtu`.
DX-1704argumento inválidocluster1os CIDR do cluster entram em conflito entre si ou com o ambiente
O `spec.podSubnet` e o `spec.serviceSubnet` sobrepõem-se, ou um deles sobrepõe-se a uma rede que este host já usa, ou o CIDR dos pods é pequeno demais para o número de nós (o controller-manager corta um /24 por nó, por isso os nós seguintes não receberiam gama nenhuma e os pods deles ficariam Pending). Um campo CIDR pode também trazer bits fora do seu próprio prefixo (`10.244.0.1/16`), e isso é recusado em vez de mascarado, para que o manifesto e o cluster não possam discordar sobre o que foi pedido. Até este código existir, os campos CIDR eram validados só por CONJUNTO DE CARACTERES — `9`, `1.2.3.4` e `0.0.0.0/99` passavam todos, e a falha chegava mais tarde, do `kubeadm`, num host.
Escolhe gamas que não se sobreponham entre si nem às redes do próprio host (o `delonix network ls` mostra-as), e alarga o CIDR dos pods para pelo menos 256 endereços por nó. Nada é criado quando isto é recusado.
DX-1705argumento inválidocluster1o perfil de rede escolhido é experimental
O perfil está implementado e o artefacto dele está fixado e verificado, mas NÃO foi validado de ponta a ponta contra o CRI deste motor numa topologia de vários nós — a própria secção «o que não foi medido» do ADR-0074 di-lo por escrito. Activá-lo por omissão seria a falha «diz que sim sobre trabalho que não fez» que este projecto recusa, por isso fica atrás de um consentimento explícito em vez de ser escondido ou removido.
Para o usar mesmo assim, di-lo no manifesto (`spec.network.experimental: true`) ou na linha de comandos (`--experimental-cni`), e lê o `docs/network-compatibility.md` para saber exactamente o que foi e o que não foi medido. A recusa nomeia a razão desse perfil em concreto.
DX-1706argumento inválidocluster1uma capacidade de rede que o caminho do cluster ainda não implementa
O manifesto pediu algo que este bootstrap ainda não faz — hoje é qualquer `spec.network.ipFamily` que não seja `ipv4`: o caminho do cluster renderiza só CIDR IPv4 de pods e de serviços, e a validação de CIDR dele é aritmética IPv4. Isto é «não implementado», não «impossível»: o ADR-0065 leva o dataplane IPv6 e o trabalho é real, só não chegou a este caminho.
Deixa o `spec.network.ipFamily` sem valor (ou `ipv4`). Para um cluster dual-stack hoje, faz o bootstrap com `cni: none` e aplica a tua CNI com a configuração dual-stack dela.
DX-1707argumento inválidocluster1um campo da config kind que este motor não honra
Uma config `kind.x-k8s.io/v1alpha4` (`delonix cluster create --config`, ou `cluster apply` de um documento desses) é aceite campo a campo: o delonix honra o que consegue implementar nativamente (`nodes[].role`, `name`, `networking.podSubnet`, `networking.serviceSubnet`, `networking.apiServerPort`, `networking.disableDefaultCNI`) e recusa o resto PELO NOME em vez de avisar e ignorar — um campo que se lê como aplicado e não foi é a falha-silenciosa que este motor não entrega. O conjunto recusado é o que não tem equivalente no modo kind nativo do delonix: `extraMounts`/`extraPortMappings` de nó (os nós não são contentores Docker com a canalização de portas/volumes do kind), `kubeadmConfigPatches`/`kubeadmConfigPatchesJSON6902` e `containerdConfigPatches*` (o delonix escreve a sua própria config rootless de kubeadm/containerd), `featureGates`, `runtimeConfig`, e os botões de `networking` que ele não renderiza (`kubeProxyMode`, `apiServerAddress` que não seja loopback, `ipFamily` que não seja `ipv4`). Uma chave não reconhecida (um erro de escrita) é recusada da mesma forma.
Remove o campo nomeado da config, ou passa às flags de `delonix cluster create` para o que o delonix suporta. Para uma capacidade que o delonix não implementa, cria o cluster com `networking.disableDefaultCNI: true` (ou `--cni none`) e aplica a tua própria configuração depois de ele estar de pé. Nada é criado quando isto é recusado.
DX-1801argumento inválidosegurança1nome 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-1802argumento inválidosegurança1chave 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-1803argumento inválidosegurança1nome 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-1804argumento inválidosegurança1chave 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-1805argumento inválidosegurança1o 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-1901argumento inválidomáquina1perfil 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-1902argumento inválidomáquina1nenhum 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-1903argumento inválidomáquina1o socket passado pelo gestor de serviços não pode ser servido
A API de nó foi arrancada por activação de socket (o `LISTEN_PID` nomeia-a) e o que lhe foi passado não é um socket unix de stream à escuta: o `LISTEN_FDS` não se lê como uma contagem, foi passado mais de um socket, ou o descritor é uma porta TCP, um socket de datagramas ou uma ligação em vez de um socket à escuta. Servi-lo na mesma perderia as garantias do socket local e do `SO_PEERCRED`, ou serviria um socket que ninguém pediu.
Corrige a unit `.socket`: um só `ListenStream=` com um caminho absoluto, `Accept=no`, `SocketMode=0600`. O `delonix serve node-api --install-units` escreve um par correcto.
DX-1904argumento inválidomáquina1foi dado --addr a uma API de nó arrancada por activação de socket
O gestor de serviços passou um socket à escuta e a linha de comandos também nomeia um com `--addr`. São dois sockets diferentes; servir um deles em silêncio deixaria os clientes do outro sem resposta.
Tira o `--addr` do `ExecStart=` da unit: com activação de socket o endereço é o `ListenStream=` da unit `.socket`.
DX-2000uso inválidomotor2uso 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-2601uso inválidostack2o 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-3000não está a corrermotor3nã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-3101não está a corrercontainer3o 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-4000não existemotor4esse 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-4001não existemotor4não há essa rota na API de nó
O pedido chegou ao socket da API de nó com um método e um caminho para os quais ela não tem handler. O OpenAPI publicado (`GET /openapi.json`) lista o contrato; um caminho que lá esteja pode ainda não ser servido por esta versão do motor (DX-6001).
Confere o método e o caminho no `GET /openapi.json`, ou abre o `GET /docs`.
DX-4101não existecontainer4esse 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-4102não existecontainer4dispositivo 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-4201não existevolume4esse 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-4202não existevolume4esse 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-4203não existevolume4esse pool de armazenamento não existe
Não há nenhum `kind: StoragePool` com esse nome em uso neste nó. A allowlist do administrador diz que pools podem ser usados; um pool passa a ser usado quando um `kind: StoragePool` o nomeia.
Lista-os com `delonix get storagepools`, e aplica um `kind: StoragePool` com esse nome.
DX-4301não existerede4nã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-4302não existerede4não existe esse Service
Não existe nenhum Service com esse nome nesse namespace.
Lista os services com `delonix get services`.
DX-4303não existerede4a 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-4304não existerede4nã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-4401não existeimagem4essa 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-4402não existeimagem4imagem 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-4501não existevm4essa 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-4502não existevm4esse 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-4503não existevm4esse 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-4504não existevm4nã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-4505não existevm4essa rede não existe para a VM
A VM nomeia uma rede que não está declarada neste nó. A criação parou antes de construir fosse o que fosse.
Cria-a primeiro com `delonix network create <nome>` (ou um `kind: Network`), ou omite o `--network` para usar a rede por omissão.
DX-4601não existestack4fonte GitOps inexistente
Não há nenhuma `kind: GitOpsSource` com esse nome nesse namespace neste nó.
Lista-as com `delonix get gitopssources`; uma fonte regista-se com `delonix stack apply`.
DX-4801não existesegurança4esse 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-5000conflitomotor5conflito: 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-5001conflitomotor5request_id reutilizado para um pedido diferente
O registo de operações da API do nó responde a uma mutação repetida com o primeiro resultado gravado (ADR-0042 D2 "Idempotência"), identificado por request_id, verbo e alvo. Este request_id já produziu uma operação para o mesmo verbo e alvo, mas o pedido gravado não corresponde ao conteúdo deste (imagem, tamanho, namespace ou campos semelhantes diferem) — um request_id nomeia um pedido exacto, não um recurso.
Gera um request_id novo (uma chave de idempotência deve ser única por pedido distinto, por exemplo um UUID novo por chamada), e envia os dois pedidos com as suas próprias chaves.
DX-5002conflitomotor5a operação não pode ser cancelada
A operação já terminou, ou está a correr para lá do ponto sem retorno: cada mutação que este motor serve na API de nó corre até ao fim depois de aceite, por isso nada foi cancelado e o estado da operação não mudou.
Acompanha a operação até ao fim (`WatchOperation`, ou `GET /v1/operations/{id}`) e depois desfaz o que ela fez com o pedido inverso, se era isso que querias.
DX-5101conflitocontainer5container 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-5201conflitovolume5o pool de armazenamento tem algo no caminho
O pool ainda tem volumes deste motor, ou o objecto que foi pedido a um driver para criar ou libertar existe no pool sem a marca deste motor para este state root. Um objecto nunca é adoptado nem apagado pelo nome (ADR-0067 D5).
Remove primeiro os volumes que a mensagem lista; para um objecto que não é deste motor, escolhe outro nome de volume ou pede ao dono que o remova.
DX-5202conflitovolume5o pool de armazenamento não pode receber este volume
A soma dos tamanhos alocados no pool passaria o seu tecto de sobre-alocação (`overcommit.maxRatio` vezes a capacidade), ou o pool já está acima de 95% de ocupação (ADR-0067 D6).
Liberta espaço no pool, pede um volume mais pequeno, ou sobe o `overcommit.maxRatio` no `kind: StoragePool` sabendo que um pool cheio faz falhar todos os volumes que lá estão.
DX-5203conflitovolume5o volume está em uso
Um container monta o volume, ou uma partilha foi recortada dos seus dados, e removê-lo tirava-lhes os dados debaixo dos pés.
Remove primeiro o que a mensagem lista (`delonix container rm`, `delonix volume rm <partilha>`), ou pede a remoção com force para destruir os dados na mesma.
DX-5204conflitovolume5o pool de armazenamento não foi criado por este helper
O `destroy-pool` só destrói um pool que a allowlist do administrador marca com um bloco `create:` e que traz a marca de criação do próprio helper. Um pool que já existia antes do motor, ou um sem a marca, nunca é destruído (ADR-0067 D5).
Tira a entrada do pool de `/etc/delonix/storage-pools.yaml` para deixar de o usar; destruir o que o suporta é decisão do próprio administrador, fora deste motor.
DX-5205conflitovolume5um dispositivo indicado para o pool não pode ser usado
O `create-pool` foi recusado antes de escrever o que fosse: um dispositivo em `create.devices` do pool traz uma assinatura de sistema de ficheiros ou de volume, não resolve para um dispositivo de bloco, ou o volume group, zpool ou ponto de montagem que criaria já existe.
Verifica o dispositivo que a mensagem nomeia. Para escrever por cima de uma assinatura, passa `--wipe-devices` no terminal, sabendo que isso destrói o que está no dispositivo.
DX-5301conflitorede5a 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-5302conflitorede5nã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-5303conflitorede5a 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-5304conflitorede5a 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-5305conflitorede5octeto 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-5306conflitorede5a 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-5307conflitorede5a 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-5308conflitorede5endereç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-5360conflitorede5o conjunto de VIP sobrepõe-se a um intervalo em uso
O conjunto de VIP partilha endereços com algo que este nó encaminha ou serve: uma rede do motor, um intervalo de pods CNI, a sub-rede de pods ou de serviços de um cluster kind, um endereço ou rota do host (uma VPN incluída), ou as sub-redes do próprio holder (ADR-0066 D2). Um VIP aí esconderia endereços reais.
Escolhe um conjunto que nada neste nó use (`delonix network vip-pool set <cidr>`); a mensagem nomeia a origem sobreposta.
DX-5389conflitorede5o 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-5390conflitorede5o plano foi calculado contra um estado que entretanto mudou
O `stack apply --plan-digest` recebeu um digest, e o digest recalculado agora para um documento de rede não está entre os fornecidos: o manifesto, o que o provider tem, o provider, as suas capacidades ou o catálogo mudaram entre o plano e o apply. Razão `stale_plan` do ADR-0059 D5. Nada foi escrito.
Volta a planear (`delonix stack plan -o json`), lê o que mudou e aplica com o `planDigest` novo.
DX-5501conflitovm5nome 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-5502conflitovm5nome 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-5503conflitovm5nome 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-5504conflitovm5o 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-5505conflitovm5a 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-5506conflitovm5a 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-5507conflitovm5a 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-5508conflitovm5a rede do hipervisor não está na sub-rede declarada
O hipervisor já tem uma rede com o nome que a VM pediu, numa sub-rede diferente da que foi declarada para ela. O motor só redefine uma rede assim quando foi ele que a definiu e nenhuma VM está nela; caso contrário recusa, porque ligar a VM colocá-la-ia numa sub-rede que ninguém declarou.
Remove primeiro as VMs que ainda estão na rede antiga, ou dá outro nome à rede do delonix. Uma rede que o motor não definiu é do operador: altera-a ou remove-a com `virsh net-edit`/`virsh net-undefine`, se é isso que queres.
DX-5515conflitovm5a 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-5516conflitovm5o 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-5517conflitovm5o 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-5601conflitostack5um recurso que o manifesto declara pertence a outrem — nada foi alterado
O plano tem um `Conflict`: um recurso com este nome já tem o carimbo `delonix.io/stack` de outra stack, ou (uma VM) o provider tem uma que o registo deste nó não conhece. Duas stacks a convergir o mesmo recurso fá-lo-iam oscilar entre duas formas a cada apply, por isso o `stack apply` recusa o apply inteiro antes de se tocar em qualquer coisa, o `stack apply --dry-run` sai com este código depois de imprimir o manifesto, e o `stack plan --detailed-exitcode` sai com ele em vez de 0 ou 2. Nenhuma flag o autoriza.
Aplica-o a partir da stack que é dona dele, remove-o lá primeiro, ou muda-lhe o nome neste manifesto; o `stack plan` diz quem é o dono.
DX-6000indisponívelmotor69indisponí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-6001indisponívelmotor69a API de nó ainda não serve isto
A operação está no contrato (`proto/delonix/node/v1`) e esta versão do motor não a serve: a mensagem nomeia o passo do ADR que a traz. O estado HTTP é 501 Not Implemented, não 503: repetir não ajuda.
Entretanto usa a CLI para a operação, ou uma versão do motor que a sirva (o `GET /v1/node` dá a versão).
DX-6101indisponívelcontainer69o container ainda não acabou de montar
O processo do container corre, mas o arranque passou o tecto da montagem antes de o init dizer que o sistema de ficheiros estava no sítio, por isso um comando que entre agora pode correr no sistema de ficheiros do host. Os comandos que entram nele são recusados até o init o dizer.
Espera e tenta outra vez: a recusa levanta-se sozinha quando as montagens acabam. Se nunca acabarem, olha para os volumes que monta (um servidor NFS que não responde é a causa habitual) e reinicia o container.
DX-6102indisponívelcontainer69não foi possível criar ou limitar o grupo de cgroup do container
Como root, um container que nomeia um grupo de cgroup fica sob `delonix.slice/<group>/`, e o tecto agregado do grupo é escrito antes de o container entrar. Criar o grupo, escrever um dos seus tectos, ou passar-lhe um controlador falhou — e um grupo sem o seu tecto não seguraria nada, por isso o container não é arrancado.
Lê a mensagem para o ficheiro e o erro. Confirma que o `delonix.slice` passa aos filhos os controladores `memory`, `cpu` e `pids` (`delonix system doctor`), e que nenhum outro processo está directamente no directório do grupo.
DX-6201indisponívelvolume69nã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-6202indisponívelvolume69versã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-6203indisponívelvolume69o pool de armazenamento não pode ser usado neste host
Não existe allowlist de pools de armazenamento neste nó, o driver do pool não está construído nesta versão, ou a sonda encontrou o objecto de suporte em falta ou sem escrita. Nada foi criado.
Segue o remédio da mensagem: pede ao administrador que declare o pool em `/etc/delonix/storage-pools.yaml`, cria o directório dele, ou dá a este utilizador acesso de escrita.
DX-6204indisponívelvolume69não foi possível determinar o estado do pool de armazenamento
A listagem que diria se o pool é utilizável precisa de um privilégio que este processo não tem, ou a allowlist não pôde ser lida. Uma resposta vazia obtida sem o privilégio para listar nunca é lida como «não há pools» (ADR-0067 D3.5).
Segue o remédio da mensagem; nada foi criado nem alterado.
DX-6205indisponívelvolume69este processo não consegue remover os dados do volume
Parte dos dados do volume pertence a um subuid mapeado (escritos por um container num user namespace), e a API de nó ainda não tem forma de entrar nesse user namespace; remover o que consegue ler deixaria o volume meio apagado. Nada foi removido.
Remove-o com `delonix volume rm <nome>`, que remove os dados mapeados de dentro do user namespace a que pertencem.
DX-6206indisponívelvolume69o helper privilegiado de armazenamento não está alcançável
O driver do pool precisa de uma operação que só o root faz (LVM-thin, uma montagem ZFS), e neste nó não está configurado nem o helper activado por socket nem um motor root em `in-process`. Nada foi criado (ADR-0067 D3).
Instala as units do helper e activa o `delonix-storage-helper.socket`, e acrescenta este utilizador ao `allowUsers` do pool; ou corre o motor como root com `mode: in-process` na allowlist.
DX-6301indisponívelrede69o '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-6302indisponívelrede69esta 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-6305indisponívelrede69o isolamento por namespace não seria imposto neste host
Foi pedida uma namespace com nome, mas o kernel não filtra o tráfego dentro de uma bridge (br_netfilter não carregado, ou net.bridge.bridge-nf-call-iptables=0). Todas as regras de isolamento seriam instaladas e nenhuma bloquearia nada.
Carrega o br_netfilter e põe bridge-nf-call-iptables=1 (o `delonix system doctor` imprime os comandos, o `install.sh --tune` persiste-os), ou define DELONIX_ALLOW_UNENFORCED_ISOLATION=1 para correr sem isolamento de propósito.
DX-6360indisponívelrede69nenhum conjunto de VIP configurado
Foi aplicado um Service com `type: VirtualIP` num nó sem conjunto de VIP. Não há conjunto por omissão de propósito: uma reserva universal tiraria um intervalo a todos os hosts onde este motor corre (ADR-0066 D2).
Configura um com `delonix network vip-pool set <cidr>` (ou `DELONIX_SERVICE_VIP_CIDR` para um processo), ou usa `type: DNS`.
DX-6361indisponívelrede69o hairpin do VIP precisa de br_netfilter
O tráfego em bridge não passa pelo netfilter no holder (`net.bridge.bridge-nf-call-iptables` não está a 1, ou o `br_netfilter` não está carregado), por isso um cliente na própria rede dos backends esgotaria o tempo no VIP (ADR-0066 D5).
Carrega o módulo no host (`modprobe br_netfilter`); o `install.sh` fá-lo por omissão.
DX-6381indisponívelrede69nenhum 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-6383indisponívelrede69nã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-6501indisponívelvm69backend 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-6502indisponívelvm69nenhum 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-6503indisponívelvm69nenhum 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-6504indisponívelvm69cloud-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-6505indisponívelvm69nã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-6506indisponívelvm69nó 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-6507indisponívelvm69capacidade 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-6508indisponívelvm69a 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-6509indisponívelvm69nã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-6510indisponívelvm69o 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-6511indisponívelvm69o 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-6512indisponívelvm69o 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-6513indisponívelvm69o 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-6514indisponívelvm69o 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-6515indisponívelvm69os tectos de CPU e memória da VM não podem ser aplicados
Um VMM do Cloud Hypervisor arranca dentro da sua própria folha de cgroup, com o CPU e a memória da VM como tectos da folha, para que o processo que segura os vCPUs e a RAM do convidado seja o limitado. Nenhuma folha pode existir para ele neste host (rootless sem cgroup delegado, ou nenhum fornecedor de folhas neste processo), ou um tecto não pegou na folha. Nada foi criado.
Corre o motor onde ele possa criar cgroups: como root, ou rootless num scope delegado (`systemd-run --user --scope -p Delegate=yes -- delonix vm create ...`). Para arrancar a VM sem tectos de propósito, define DELONIX_ALLOW_UNENFORCED_LIMITS=1.
DX-6601indisponívelstack69o git não está instalado
Uma passagem GitOps obtém com o `git(1)` do sistema (ADR-0021 decisão 2: um subprocesso, não uma biblioteca), e este nó não tem nenhum no `PATH`.
Instala o pacote `git` (`apt install git`, `dnf install git`).
DX-6602indisponívelstack69não foi possível obter a fonte
O `git fetch` da ref da fonte falhou: o remoto está inalcançável, a ref não existe, a chave ou a chave de host fixada foi recusada, ou o git recusou os objectos (`fsckObjects`). Nada foi lido e a stack em execução fica intacta.
Verifica o URL e a ref, que o nó alcança o remoto, e que a chave de deploy e as chaves de host fixadas nos segredos nomeados são as certas.
DX-6603indisponívelstack69não foi possível instalar o temporizador GitOps
Uma fonte com `sync.automated: true` instala um temporizador systemd, e o `systemctl` falta ou recusou (sem gestor de utilizador nesta sessão, num nó rootless).
Corre-o onde o systemd gere o utilizador (`loginctl enable-linger`), ou põe `sync.automated: false` e corre `delonix gitops reconcile` a partir do teu próprio agendador.
DX-6701indisponívelcluster69RETIRADO — a CNI por omissão de um cluster kubeadm multi-nó já não é recusada
Já não é emitido (mantido para que `explain DX-6701` continue honesto perante saídas antigas). Um cluster kubeadm com mais de um nó e `cni: default` era aqui recusado, porque a CNI por omissão era uma bridge local ao nó que não encaminha nada entre nós. O motor agora RESOLVE `default` para Cilium nesse caminho (`net_profiles::resolved_profile`), a rede de pods entre nós por omissão em HA — um só nó continua com a bridge, e `mode: kind` continua com o kindnet. Ver ADR-0078 (emendada a 2026-10-27).
Nada a fazer: `cluster kubeadm` com vários nós e `cni: default` levanta sozinho um cluster Cilium funcional. Para escolher outra rede de pods, passa `--cni cilium|calico|flannel` (com `--experimental-cni`) ou `--cni none` para aplicares a tua.
DX-6702indisponívelcluster69dois ou mais nós do cluster resolveram para o mesmo endereço
Todas as máquinas de um cluster kubeadm foram provisionadas, mas duas ou mais resolveram para o MESMO endereço, por isso o bootstrap abriria uma sessão SSH por nó e várias cairiam na mesma máquina enquanto as restantes nunca seriam configuradas. A causa habitual é uma imagem golden que traz uma identidade cozida lá dentro: o `/etc/machine-id` não está vazio na imagem, cada clone deriva dele o mesmo identificador de cliente DHCP do systemd (DUID-EN, número de empresa 43793), e um servidor DHCP indexa as concessões pelo identificador de cliente quando existe um — por isso N clones são tratados como UM só cliente e uma única concessão migra para o que pediu por último, deixando-os todos com o mesmo endereço. Recusado aqui, antes de se preparar qualquer host; sem esta verificação a execução falhava muito mais tarde e muito mais longe, como um `mv: cannot stat '/tmp/delonix-cri'` sem relação aparente, vindo de um passo de preparação a competir consigo mesmo sobre um só host.
Confirma com `virsh net-dhcp-leases <network>`: uma só entrada para N clones a correr, todos a partilhar o mesmo `Client ID or DUID`, é este bug. O `delonix vm image build` esvazia o `/etc/machine-id` como último passo desde a v0.10.0 — uma imagem construída antes disso guarda um id real, por isso reconstrói a imagem (`delonix vm image build`) e cria o cluster outra vez. Para uma imagem que não foi construída aqui, esvazia o ficheiro em vez de o apagar (`truncate -s 0 /etc/machine-id`, zero bytes, para o systemd gerar um por cada arranque) e remove qualquer estado de concessão DHCP ou DUID persistido em `/var/lib/dhcp/` e `/var/lib/systemd/network/`.
DX-6703indisponívelcluster69a rede dos pods de um cluster vivo não se muda no lugar
O cluster já corre um perfil de rede dos pods e o manifesto pede agora outro. Não há migração suportada: os dois perfis são donos do mesmo CIDR de pods, do mesmo `/etc/cni/net.d` e do mesmo estado de iptables/eBPF em cada nó, e nada neste motor drena, re-endereça e re-liga cada pod. Aplicar o segundo por cima do primeiro deixaria dois donos da rede dos pods e um cluster cujo comportamento depende de qual agente escreveu uma regra por último. O cluster fica intocado e continua a correr o perfil que tinha.
Cria um cluster novo com o perfil que queres e migra as cargas. Se o objectivo é reparar uma instalação do MESMO perfil, volta a correr o apply: esse caminho é idempotente.
DX-6704indisponívelcluster69não se obteve o artefacto da rede dos pods, ou ele não bateu com o digest
O artefacto de instalação fixado para o perfil escolhido (um manifesto, ou um tarball de chart Helm) não se conseguiu descarregar, ou o conteúdo dele não bateu com o SHA-256 que esta release fixa. Em modo offline significa que o artefacto não está mesmo na cache local. Em qualquer dos casos o bootstrap para ANTES de aplicar qualquer coisa: um artefacto cujos bytes mudaram não se instala pela força do URL.
Online: confirma o alcance de rede do próprio host ao publicador e volta a correr. Offline: enche a cache antes com `delonix cluster network fetch --cni <perfil>` numa máquina com alcance, e copia o `<root>/net-profiles/` para aqui. Um digest que não bate num publicador alcançável quer dizer que o pin desta release e o artefacto publicado discordam — reporta-o em vez de contornar.
DX-7000permissão negadamotor77permissã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-7201permissão negadavolume77a allowlist do administrador não permite isto
O pool não está na allowlist de pools de armazenamento do administrador, ou o volume pedido é maior do que o `maxVolumeBytes` do pool. Um manifesto só pode usar o que o administrador declarou (ADR-0067 D3).
Pede ao administrador que acrescente o pool a `/etc/delonix/storage-pools.yaml` ou que suba o `maxVolumeBytes`; ou usa um pool que o `delonix get storagepools` liste.
DX-7202permissão negadavolume77o helper de armazenamento não serve este utilizador neste pool
O helper lê o uid de quem chama no próprio socket (`SO_PEERCRED`) e só serve um uid que o `allowUsers` do pool nomeie. Um `allowUsers` vazio não serve ninguém.
Pede ao administrador para acrescentar este utilizador ao `allowUsers` do pool em `/etc/delonix/storage-pools.yaml`.
DX-7203permissão negadavolume77um comando de administração de pools precisa de root
O `delonix-storage-helper create-pool` e o `destroy-pool` escrevem em dispositivos crus, volume groups e pools: só correm como root, num terminal, nunca por ordem de um manifesto.
Corre-o com `sudo` num terminal.
DX-7385permissão negadarede77o 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-7601permissão negadastack77o commit não está assinado por uma chave de confiança
A fonte pede commits assinados e o `git verify-commit` não aceitou o commit contra o `allowed_signers` SSH em `trustedKeysRef`: sem assinatura, assinado por outra chave, ou assinado com GPG (só se verificam assinaturas SSH). Nada foi lido dele.
Assina o commit com uma chave listada no segredo das chaves de confiança, ou acrescenta-lhe no nó a chave de quem assina.
DX-7801permissão negadasegurança77excepção à verificação de origem não concedida pela política do nó
Um container pediu uma excepção à anti-spoof (`--allow-source` ou `--no-source-check`) que a política de runtime deste nó não concede. São permissões, não tectos: sem `allowedSourcePrefixes` / `allowSourceCheckOptOut` na política nada é concedido. A recusa fica no registo de eventos.
Pede ao administrador do nó que o conceda na política de runtime (`kind: RuntimePolicy`), ou retira a flag. Um prefixo tem de caber dentro de um que a política conceda.
DX-7802permissão negadasegurança77recusado pela política de runtime do nó
O ponto de admissão do nó (`policy.json`, `kind: RuntimePolicy`) recusou o workload antes de se criar fosse o que fosse: um container, pod ou VM pediu algo que a política proíbe (privilegiado, rede do host, um registo fora da lista, passthrough de dispositivos, ou o que o `workloadSecurity: baseline` recusa). Todas as razões são nomeadas, e a recusa fica no registo de eventos. É uma recusa de permissão, por isso sai com 77, como as outras recusas da política.
Retira do pedido o que a política proíbe, ou pede ao administrador do nó que mude a política de runtime (`kind: RuntimePolicy`). `delonix describe runtimepolicies` mostra o que está em vigor.
DX-8000prazo esgotadomotor124prazo 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-8101prazo esgotadocontainer124container 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-8201prazo esgotadovolume124job 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-8501prazo esgotadovm124task 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-8502prazo esgotadovm124lock 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-8503prazo esgotadovm124a VM não ficou de pé antes do tempo de arranque
O `--wait` deu à VM o `--boot-timeout` inteiro e nunca a viu responder: ainda sem endereço, ou com um endereço que nunca respondeu. A VM fica como está, a correr.
Acompanha o arranque com `delonix vm console <name>`; sobe o `--boot-timeout` para um convidado lento, ou `delonix vm rm` se não arrancar.
DX-8504prazo esgotadovm124o hipervisor atribuiu o recurso, mas o convidado ainda não o usou
o `vm update` acrescentou uma vCPU ou memória e o hipervisor confirmou-o, mas dentro do prazo de espera o convidado não o activou (CPU online, bloco de memória online) — ou o backend não tem canal nenhum para ver o convidado (ADR-0068 D4). O registo já guarda o valor atribuído pelo hipervisor: um restart não o perde.
Dá mais tempo ao convidado e verifica outra vez com `delonix vm describe`; um convidado sem a política de activação (ADR-0068 D8) pode nunca a activar por si próprio.
DX-8601prazo esgotadostack124o git não terminou a tempo
Uma invocação do git numa passagem GitOps passou o seu tecto (120 s) e foi parada, para que um remoto pendurado não segure o lock da fonte até ao próximo disparo.
Verifica que o remoto responde; o próximo disparo tenta outra vez.
DX-9000falha do sistemamotor1uma 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-9001falha do sistemamotor74erro 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-9002falha do sistemamotor1registo 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-9003falha do sistemamotor1nã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-9004falha do sistemamotor1o 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-9005falha do sistemamotor1a API de nó falhou ao responder
A API de nó não conseguiu calcular a resposta: uma sonda que corre entrou em pânico ou um valor que lê não pôde ser obtido. A mensagem diz o que falhou.
Lê a mensagem; o log do servidor (`delonix serve node-api`) tem o detalhe. Reporta-o se se repetir.
DX-9201falha do sistemavolume1uma 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-9202falha do sistemavolume1pedido 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-9203falha do sistemavolume1TrueNAS 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-9204falha do sistemavolume1nã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-9205falha do sistemavolume1job 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-9206falha do sistemavolume1job 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-9207falha do sistemavolume1dataset 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-9208falha do sistemavolume1o 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-9301falha do sistemarede1uma 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-9302falha do sistemarede1nã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-9304falha do sistemarede1o 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-9307falha do sistemarede1resposta 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-9308falha do sistemarede1a 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-9401falha do sistemaimagem1erro 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-9402falha do sistemaimagem1nã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-9403falha do sistemaimagem1digest 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-9404falha do sistemaimagem1a 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-9501falha do sistemavm1ferramenta 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-9502falha do sistemavm1a 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-9503falha do sistemavm1disco 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-9504falha do sistemavm1o 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-9505falha do sistemavm1sem 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-9506falha do sistemavm1admissã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-9507falha do sistemavm1o 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-9508falha do sistemavm1nã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-9509falha do sistemavm1cloud-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-9510falha do sistemavm1pedido 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-9511falha do sistemavm1Proxmox 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-9512falha do sistemavm1a 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-9513falha do sistemavm1task 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-9514falha do sistemavm1nã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-9515falha do sistemavm1o 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-9516falha do sistemavm1o 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-9517falha do sistemavm1a 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-9525falha do sistemavm1descartar 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-9901falha do sistemamáquina1uma 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).
CodeClassDomainExitMessage, meaning, what to do
DX-0000successengine0success
The command did what it was asked.
Nothing.
DX-1000invalid argumentengine1invalid 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-1101invalid argumentcontainer1ambiguous container name
The name exists in more than one namespace, so it does not say which container.
Qualify it as <namespace>/<name>.
DX-1102invalid argumentcontainer1invalid 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-1103invalid argumentcontainer1invalid 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-1104invalid argumentcontainer1invalid cgroup weight
A weight value (--cpu-weight, --io-weight) is outside the cgroup v2 range.
Pass a weight between 1 and 10000.
DX-1105invalid argumentcontainer1invalid 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-1106invalid argumentcontainer1invalid 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-1107invalid argumentcontainer1empty 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-1108invalid argumentcontainer1no 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-1109invalid argumentcontainer1unsafe 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-1110invalid argumentcontainer1live-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-1111invalid argumentcontainer1container 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-1112invalid argumentcontainer1live 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-1113invalid argumentcontainer1live 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-1114invalid argumentcontainer1invalid 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-1115invalid argumentcontainer1kubelet 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-1116invalid argumentcontainer1invalid cgroup group
The container names a cgroup group (`cgroup_parent`) whose name is not one safe path segment ([a-z0-9._-], at most 64 bytes, not `.`/`..`, not starting with `-`), or whose aggregate memory, CPU or process ceiling does not parse. Nothing is placed: a name that could climb out of the engine's base, or a ceiling the kernel would not get, is refused instead of dropped.
Use a group name made of [a-z0-9._-]; give memory as bytes or a suffix (1G, 512Mi), CPU as a decimal number of cores (0.5, 2) and processes as a whole number or `max`.
DX-1201invalid argumentvolume1invalid 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-1202invalid argumentvolume1network 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-1203invalid argumentvolume1network 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-1204invalid argumentvolume1invalid 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-1205invalid argumentvolume1hard 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-1206invalid argumentvolume1quota 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-1207invalid argumentvolume1volume 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-1208invalid argumentvolume1ambiguous volume name
The name is both a volume in the workload's namespace and a global volume.
Rename one of the two.
DX-1209invalid argumentvolume1invalid volume spec
A -v value is not source:/target[:options].
Write it as source:/target, optionally with :ro.
DX-1210invalid argumentvolume1unsupported 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-1211invalid argumentvolume1mount target is not absolute
The path inside the container must start with a slash.
Write the target as an absolute path, like /data.
DX-1212invalid argumentvolume1quota 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-1213invalid argumentvolume1invalid 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-1214invalid argumentvolume1credential 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-1215invalid argumentvolume1credential 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-1216invalid argumentvolume1invalid 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-1217invalid argumentvolume1the storage pool request cannot be served as written
A `kind: StoragePool`, a `spec.pool` or a `--pool` carries something a pool request may not: a device, a path or a command (those are the administrator's, in the allowlist), a size that is missing or does not parse, or a pool beside another backing for the same volume (ADR-0067 D2).
Name only the pool; give the volume a `size`; and keep `pool` apart from `nfs`/`cifs`/`webdav`/`share`/`provision`/`quota`.
DX-1218invalid argumentvolume1the storage pool allowlist cannot be used
The administrator's allowlist of storage pools exists and is refused: it does not parse, names a field nobody defined, an entry lacks what its driver needs, or the file can be written by someone other than its owner (ADR-0067 D3).
Fix the file the message names (`/etc/delonix/storage-pools.yaml` unless DELONIX_STORAGE_POOLS_FILE says otherwise) and keep it mode 0644, owned by root or by the user running the engine.
DX-1219invalid argumentvolume1storage pool driver registration refused
A storage pool driver was registered with no id. A programming error in the process that registered it, not in what was asked.
Report it: the composition root registers the drivers, and one of them has an empty id.
DX-1220invalid argumentvolume1usage could not be fully measured
A directory inside the volume could not be read (commonly sub-uid data from a container), so the measured usage is a lower bound, not the real total — shrinking on an unverified number can truncate data.
Run as a user that can read every file in the volume, or verify its real size another way before shrinking.
DX-1221invalid argumentvolume1the storage helper refused the request
The privileged storage helper read a request it does not serve: it does not parse, names a field the protocol does not have, names an operation the socket does not take (pool creation and destruction are administrator commands, never socket requests), or carries a pool, volume, size or state root outside what the protocol accepts (ADR-0067 D3). Nothing was done.
Use the engine's own commands (`delonix volume create --pool`) rather than writing to the helper's socket; an administrator creates or destroys a pool at a terminal with `delonix-storage-helper create-pool|destroy-pool <name>`.
DX-1301invalid argumentnetwork1invalid 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-1302invalid argumentnetwork1invalid 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-1303invalid argumentnetwork1could 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-1304invalid argumentnetwork1invalid 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-1305invalid argumentnetwork1CNI 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-1306invalid argumentnetwork1invalid 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-1307invalid argumentnetwork1invalid 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-1308invalid argumentnetwork1invalid 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-1309invalid argumentnetwork1invalid 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-1310invalid argumentnetwork1network 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-1311invalid argumentnetwork1reserved network name
The name asked for is `bridge` (the implicit default network) or a reserved driver name (`host`/`none`).
Pick a different name.
DX-1312invalid argumentnetwork1invalid network name
A network name may only use letters, digits, dash and underscore.
Pick a name made of [A-Za-z0-9_-].
DX-1313invalid argumentnetwork1unsupported 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-1314invalid argumentnetwork1invalid 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-1315invalid argumentnetwork1invalid 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-1316invalid argumentnetwork1invalid /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-1317invalid argumentnetwork1no 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-1318invalid argumentnetwork1invalid 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-1319invalid argumentnetwork1invalid VNI
An overlay network's VNI does not parse, or is outside 1..16777215.
Pass a VNI between 1 and 16777215.
DX-1320invalid argumentnetwork1not 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-1321invalid argumentnetwork1invalid overlay peer
An overlay peer spec has no node_ip.
Write the peer as <node_ip> or <node_ip>=<pubkey>=<wg_ip>.
DX-1322invalid argumentnetwork1unknown network driver
A `create_lan` driver is neither `macvlan` nor `ipvlan`.
Use --driver macvlan or --driver ipvlan.
DX-1323invalid argumentnetwork1parent 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-1324invalid argumentnetwork1invalid macvlan/ipvlan subnet
A macvlan/ipvlan subnet does not parse as a CIDR.
Write it as e.g. 192.168.1.0/24.
DX-1325invalid argumentnetwork1invalid 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-1326invalid argumentnetwork1invalid 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-1327invalid argumentnetwork1invalid 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-1328invalid argumentnetwork1the 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-1331invalid argumentnetwork1invalid 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-1332invalid argumentnetwork1invalid protocol
A protocol other than tcp/udp was given to a publish/unpublish call.
Use tcp or udp.
DX-1333invalid argumentnetwork1invalid egress policy
An egress policy is not allow, deny, or allowlist:<cidrs>.
Use allow, deny, or allowlist:<comma-separated CIDRs>.
DX-1334invalid argumentnetwork1invalid egress hostname
An `egress host` suffix is not a plain DNS name.
Use a plain hostname/domain suffix, e.g. example.com.
DX-1335invalid argumentnetwork1IP 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-1336invalid argumentnetwork1firewall 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-1337invalid argumentnetwork1invalid 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-1338invalid argumentnetwork1could 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-1339invalid argumentnetwork1no 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-1340invalid argumentnetwork1IP 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-1341invalid argumentnetwork1invalid 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-1344invalid argumentnetwork1network 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-1349invalid argumentnetwork1the OPNsense URL would send the API key in the clear
The OPNsense target URL is not https://, names no host, or carries userinfo (`user:pass@`). The key/secret pair goes in every request's Authorization header, so plain HTTP hands it to anything on the path, and userinfo is a password in the configuration under another name.
Use https://<host> (with `tls.insecureSkipVerify: true` or a `caFile` for the appliance's self-signed certificate) and keep the credential in `auth`.
DX-1360invalid argumentnetwork1invalid VIP pool
A VIP pool (`network vip-pool set`, `DELONIX_SERVICE_VIP_CIDR`) is not a private IPv4 prefix (RFC 1918 or 100.64.0.0/10) between /16 and /29 written with its host bits clear, or two pools overlap (ADR-0066 D2).
Give one or more non-overlapping private prefixes such as 10.90.0.0/16.
DX-1361invalid argumentnetwork1VIP outside the pool
A Service's `spec.vip` is not inside any configured VIP pool, or is the pool's network, first or broadcast address.
Pick an address inside the pool `delonix network vip-pool show` prints, or drop `spec.vip` and let the engine choose.
DX-1380invalid argumentnetwork1the 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-1401invalid argumentimage1empty 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-1402invalid argumentimage1invalid advisory database
The advisory database the scanner loaded is not valid JSON.
Sync it again with `delonix image scan --update --feed <url>`.
DX-1403invalid argumentimage1OSV 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-1404invalid argumentimage1OSV 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-1405invalid argumentimage1not 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-1406invalid argumentimage1no Odoo module found
No directory under the path given has a __manifest__.py.
Point the scan at the directory that contains the modules.
DX-1407invalid argumentimage1invalid 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-1408invalid argumentimage1invalid 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-1409invalid argumentimage1a 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-1410invalid argumentimage1image has no layers
The image record has no layers to mount as a root filesystem.
Pull or build the image again.
DX-1411invalid argumentimage1the 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-1412invalid argumentimage1invalid 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-1413invalid argumentimage1image 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-1414invalid argumentimage1invalid 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-1415invalid argumentimage1signature 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-1416invalid argumentimage1image already signed
A signature for this digest already exists.
Pass --force to sign it again.
DX-1417invalid argumentimage1could not sign
Producing or uploading the signature failed.
Read the error in the message and check the registry login (`delonix image login`).
DX-1418invalid argumentimage1layer expands beyond the unpack limit
A layer holds more uncompressed bytes or more entries than the unpack limits allow, so it was refused while being streamed, before it could fill the disk. A small blob can expand to terabytes; the limits are what stops that.
Use a smaller image. If the image is trusted and really that large, raise DELONIX_LAYER_MAX_BYTES or DELONIX_LAYER_MAX_ENTRIES.
DX-1501invalid argumentvm1not 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-1502invalid argumentvm1invalid 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-1503invalid argumentvm1unknown VM backend
The --backend/DELONIX_VM_BACKEND value does not name a registered backend.
Use one of the backends the message lists.
DX-1504invalid argumentvm1VM 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-1505invalid argumentvm1requires 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-1506invalid argumentvm1VM 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-1507invalid argumentvm1invalid 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-1508invalid argumentvm1namespace 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-1509invalid argumentvm1--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-1510invalid argumentvm1invalid 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-1511invalid argumentvm1--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-1512invalid argumentvm1invalid static IP
The --ip value does not parse as an IPv4 address.
Pass a dotted-quad IPv4 address.
DX-1513invalid argumentvm1could 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-1514invalid argumentvm1live 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-1515invalid argumentvm1VM 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-1516invalid argumentvm1could 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-1517invalid argumentvm1no 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-1518invalid argumentvm1invalid 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-1519invalid argumentvm1credential 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-1520invalid argumentvm1invalid 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-1521invalid argumentvm1invalid 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-1522invalid argumentvm1invalid 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-1523invalid argumentvm1invalid 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-1524invalid argumentvm1unsupported 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-1525invalid argumentvm1VM 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-1526invalid argumentvm1Proxmox 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-1527invalid argumentvm1unknown 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-1528invalid argumentvm1invalid 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-1529invalid argumentvm1invalid 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-1530invalid argumentvm1invalid 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-1531invalid argumentvm1invalid 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-1532invalid argumentvm1invalid 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-1533invalid argumentvm1invalid 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-1534invalid argumentvm1invalid 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-1535invalid argumentvm1invalid 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-1536invalid argumentvm1invalid 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-1537invalid argumentvm1invalid 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-1538invalid argumentvm1invalid 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-1539invalid argumentvm1the 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 vm image ls` and `delonix vm image describe <name>`; pull or build it again if the file is missing.
DX-1540invalid argumentvm1the 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-1550invalid argumentvm1invalid 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-1552invalid argumentvm1the Proxmox vnet firewall is not written by this engine
A write to a Proxmox vnet's own firewall — its options, a new rule or a changed rule — is refused before any request, whatever its fields. Whether a vnet rule filters anything is decided per node by the host firewall's `nftables` option, under `/nodes/{node}/firewall`, which this engine does not read (ADR-0049 D3: host administration); under the default iptables firewall the node stores the rule and filters nothing. A write that could be reported as protection that does not exist is refused instead. Even where it is enforced, a vnet rule filters traffic bridged between guests of that one vnet, not traffic routed between vnets.
For traffic to or from one guest, use its own firewall (`NetworkPolicy` with `scope: vm` or `scope: systemcontainer`). Writing a vnet's firewall needs an owner decision to read the node's firewall options first (an ADR-0049 addendum).
DX-1601invalid argumentstack1invalid GitOps source
A `kind: GitOpsSource` was refused before anything was fetched (ADR-0021): a URL that is not file:///, https:// or ssh:// (or carries credentials, or reads as an option), a ref that is not refs/heads/<n> or refs/tags/<n>, a path that leaves the repository, an interval outside 15s–24h, an ssh:// source without a key and pinned host keys, signed commits without trusted keys, a safety policy naming an action or Kind it cannot, or a referenced secret that does not exist on the node.
Fix the field the message names. Credentials are named (`secretRef`, `knownHostsRef`, `trustedKeysRef`) and created on the node first, never carried in the URL or the repository.
DX-1602invalid argumentstack1the commit was refused — nothing was applied
A pass of a GitOps source read the commit and refused it before applying anything: the path is empty or missing, a symlink, a submodule, an LFS pointer or private key material is under it, the YAML does not load, a document is refused by the pull-source guard (a Kind a source never applies, host access, the source's own credential, another source, a namespace other than the source's), or the graph or the plan fails. The running stack is untouched.
Read the lines the pass printed above the error, or `delonix gitops status`, fix the repository and push a new commit — the next pass picks it up.
DX-1603invalid argumentstack1the source exceeds a bound a pass reads
A pass refuses what it would not bound: more than 4096 entries under the path, more than 256 manifest files, a manifest file over 1 MiB or 8 MiB in all, a git answer larger than its cap, or a fetched repository over 256 MiB (the mirror is then removed).
Point `spec.source.path` at the directory that holds the manifests, and keep large files out of it.
DX-1604invalid argumentstack1the plan carries an action the safety policy blocks — nothing was applied
The commit planned an action the source's `spec.safety` does not allow: `Adopt`, `Replace` or `Reboot` not in `allow`, a `Conflict` with another stack, or more prunes than `maximumDeletes`. A pass applies the whole plan or none of it.
If the action is wanted, allow it on the node (`spec.safety.allow`, `prune`, `maximumDeletes`) and apply the source; otherwise revert the commit.
DX-1701invalid argumentcluster1unknown cluster CNI
`spec.cni` (or `--cni`) names the pod network the engine installs on the cluster's nodes. The values that exist are `default` (the engine's own: kindnet in kind mode, a node-local bridge on a one-node kubeadm cluster), `none` (install nothing; the operator applies their own) and the selectable profiles `cilium`, `calico` and `flannel`, each pinned to a version and an artefact digest. Any other value used to install nothing and say nothing, which leaves every node `NotReady`.
Use one of `default`, `none`, `cilium`, `calico`, `flannel`. `delonix cluster network profiles` prints each one with its pinned version and support level; to run a CNI this engine does not ship, use `none` and apply its manifest after the cluster is up.
DX-1702invalid argumentcluster1a network option the chosen profile does not read
A field of `spec.network` was set to something the chosen pod-network profile does not render: a `dataplane` outside the profile's modes, a `kubeProxy` mode it does not implement, an extension (`hubble`, `multus`) that needs a different primary CNI or a combination that was never measured, an interface name outside the kernel's own limit, or any knob at all on `cni: default`/`cni: none`, which install no add-on and would ignore it. Routed dataplanes (`native`, BGP) are absent on purpose: they need the network around the cluster to carry pod routes, which this engine does not configure and will not assume.
The message names the field and lists the values the profile accepts. Remove the field, or choose a profile that reads it.
DX-1703invalid argumentcluster1the pod MTU does not fit the encapsulation
`spec.network.mtu` is outside the 1280-9000 range, or it does not leave room for the chosen encapsulation on the node's own MTU (VXLAN and Geneve take 50 bytes, IP-in-IP 20). An MTU that does not fit does not fail: the dataplane comes up and silently drops the large packets, which reads as unexplained slowness rather than as an error — the same trap `docs/guia-rede.md` already records for this engine's own encrypted overlay.
Omit `spec.network.mtu` and let the bootstrap compute it from the node MTU and the encapsulation, or set it to at most `nodeMtu` minus the overhead the message names. If the nodes do not run at 1500, declare the real value in `spec.network.nodeMtu`.
DX-1704invalid argumentcluster1the cluster CIDRs conflict with each other or with the environment
`spec.podSubnet` and `spec.serviceSubnet` overlap one another, or one of them overlaps a network this host already uses, or the pod CIDR is too small for the number of nodes (the controller-manager carves a /24 per node, so the later nodes would get no range and their pods would stay Pending). A CIDR field may also carry bits outside its own prefix (`10.244.0.1/16`), which is refused rather than masked so that the manifest and the cluster cannot disagree about what was asked. Until this code existed the CIDR fields were validated by CHARACTER SET only — `9`, `1.2.3.4` and `0.0.0.0/99` all passed, and the failure arrived later, from `kubeadm`, on a host.
Pick ranges that do not overlap each other or the host's own networks (`delonix network ls` shows them), and widen the pod CIDR to at least 256 addresses per node. Nothing is created when this is refused.
DX-1705invalid argumentcluster1the chosen pod-network profile is experimental
The profile is implemented and its artefact is pinned and verified, but it has NOT been validated end to end against this engine's CRI in a multi-node topology — ADR-0074's own «what was not measured» section says so in writing. Enabling it by default would be the «reports success, does nothing» failure this project refuses, so it is gated behind an explicit opt-in instead of being hidden or removed.
To use it anyway, say so in the manifest (`spec.network.experimental: true`) or on the command line (`--experimental-cni`), and read `docs/network-compatibility.md` for exactly what has and has not been measured. The refusal names the reason for that specific profile.
DX-1706invalid argumentcluster1a network feature the cluster path does not implement yet
The manifest asked for something this bootstrap does not do yet — today that is any `spec.network.ipFamily` other than `ipv4`: the cluster path renders IPv4 pod and service CIDRs only, and its CIDR validation is IPv4 arithmetic. This is «not implemented», not «impossible»: ADR-0065 carries the IPv6 dataplane and the work is real, it has simply not reached this path.
Leave `spec.network.ipFamily` unset (or `ipv4`). For a dual-stack cluster today, bootstrap with `cni: none` and apply your own CNI with its own dual-stack configuration.
DX-1707invalid argumentcluster1a field of the kind config this engine does not honour
A `kind.x-k8s.io/v1alpha4` config (`delonix cluster create --config`, or `cluster apply` of such a document) was accepted field by field: delonix honours what it can implement natively (`nodes[].role`, `name`, `networking.podSubnet`, `networking.serviceSubnet`, `networking.apiServerPort`, `networking.disableDefaultCNI`) and refuses the rest BY NAME rather than warning and ignoring it — a field that reads as applied and was not is the silent-failure this engine does not ship. The refused set is the one with no equivalent in delonix's native kind mode: node `extraMounts`/`extraPortMappings` (the nodes are not Docker containers with kind's port/volume plumbing), `kubeadmConfigPatches`/`kubeadmConfigPatchesJSON6902` and `containerdConfigPatches*` (delonix writes its own rootless kubeadm/containerd config), `featureGates`, `runtimeConfig`, and `networking` knobs it does not render (`kubeProxyMode`, `apiServerAddress` other than loopback, `ipFamily` other than `ipv4`). An unrecognised key (a typo) is refused the same way.
Remove the named field from the config, or drop to `delonix cluster create` flags for what delonix supports. For a feature delonix does not implement, create the cluster with `networking.disableDefaultCNI: true` (or `--cni none`) and apply your own configuration after it is up. Nothing is created when this is refused.
DX-1801invalid argumentsecurity1invalid 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-1802invalid argumentsecurity1invalid 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-1803invalid argumentsecurity1invalid 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-1804invalid argumentsecurity1corrupted 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-1805invalid argumentsecurity1the 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-1901invalid argumenthost1AppArmor 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-1902invalid argumenthost1no 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-1903invalid argumenthost1the socket passed by the service manager cannot be served
The node API was started by socket activation (`LISTEN_PID` names it) and what it was passed is not one listening unix stream socket: `LISTEN_FDS` does not read as a count, more than one socket was passed, or the descriptor is a TCP port, a datagram socket or a connection instead of a listener. Serving it anyway would lose the local-socket and `SO_PEERCRED` guarantees, or serve a socket nobody asked for.
Fix the `.socket` unit: one `ListenStream=` with an absolute path, `Accept=no`, `SocketMode=0600`. `delonix serve node-api --install-units` writes a correct pair.
DX-1904invalid argumenthost1--addr was given to a socket-activated node API
The service manager passed a listening socket and the command line also names one with `--addr`. They are two different sockets; serving either one silently would leave the other's clients unanswered.
Drop `--addr` from the unit's `ExecStart=`: under socket activation the address is the `.socket` unit's `ListenStream=`.
DX-2000invalid usageengine2invalid 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-2601invalid usagestack2the 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-3000not runningengine3not 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-3101not runningcontainer3container is not running
The container exists, but the operation needs it running.
Start it first (`delonix container start <name>`).
DX-4000not foundengine4no 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-4001not foundengine4no such route on the node API
The request reached the node API socket on a method and path it has no handler for. The published OpenAPI (`GET /openapi.json`) lists the contract; a path there may still be one this engine version does not serve (DX-6001).
Check the method and the path against `GET /openapi.json`, or open `GET /docs`.
DX-4101not foundcontainer4no such container
No container answers to that id, id prefix or name in this state root.
List them with `delonix container ps -a`.
DX-4102not foundcontainer4CDI 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-4201not foundvolume4no 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-4202not foundvolume4no such snapshot
The volume has no snapshot with that name.
List its snapshots with `delonix volume snapshot ls <volume>`.
DX-4203not foundvolume4no such storage pool
No `kind: StoragePool` with that name is in use on this node. The administrator's allowlist says which pools may be used; a pool is used once a `kind: StoragePool` names it.
List them with `delonix get storagepools`, and apply a `kind: StoragePool` with that name.
DX-4301not foundnetwork4no 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-4302not foundnetwork4no such Service
There is no Service of that name in that namespace.
List services with `delonix get services`.
DX-4303not foundnetwork4ingress 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-4304not foundnetwork4no 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-4401not foundimage4no 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-4402not foundimage4image 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-4501not foundvm4no 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-4502not foundvm4no such snapshot
The VM has no snapshot with that name.
List its snapshots with `delonix vm snapshot ls <vm>`.
DX-4503not foundvm4no such snapshot
The VM has no snapshot with that name on the Proxmox node.
List its snapshots with `delonix vm snapshot ls <vm>`.
DX-4504not foundvm4no 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-4505not foundvm4no such network for the VM
The VM names a network that is not declared on this node. The create stopped before building anything.
Create it first with `delonix network create <name>` (or a `kind: Network`), or leave `--network` out for the default network.
DX-4601not foundstack4no such GitOps source
There is no `kind: GitOpsSource` with that name in that namespace on this node.
List them with `delonix get gitopssources`; a source is registered with `delonix stack apply`.
DX-4801not foundsecurity4no such secret
There is no secret with that name.
List them with `delonix secret ls`, or create it with `delonix secret create`.
DX-5000conflictengine5conflict: 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-5001conflictengine5request_id reused for a different request
The node API's operation ledger answers a retried mutation with its first recorded result (ADR-0042 D2 "Idempotency"), identified by request_id, verb and target. This request_id already produced an operation for the same verb and target, but its recorded request does not match this one's content (image, size, namespace or similar fields differ) — a request_id names one exact request, not a resource.
Generate a new request_id (an idempotency key is meant to be unique per distinct request, e.g. a fresh UUID per call site), and send the two requests with their own keys.
DX-5002conflictengine5the operation cannot be cancelled
The operation already ended, or it is running past its point of no return: every mutation this engine serves on the node API runs to its end once acknowledged, so nothing was cancelled and the operation's state is unchanged.
Watch the operation to its end (`WatchOperation`, or `GET /v1/operations/{id}`), then undo what it did with the inverse request if that is what you wanted.
DX-5101conflictcontainer5container already running
The container is running, and the operation would remove or replace it without --force.
Stop it first, or pass --force.
DX-5201conflictvolume5the storage pool holds something that stands in the way
The pool still holds volumes of this engine, or the object a driver was asked to create or release exists in the pool without this engine's stamp for this state root. An object is never adopted or deleted by its name (ADR-0067 D5).
Remove the volumes the message lists first; for an object that is not this engine's, pick another volume name or have its owner remove it.
DX-5202conflictvolume5the storage pool cannot take this volume
The sum of the sizes allocated in the pool would pass its over-allocation ceiling (`overcommit.maxRatio` times its capacity), or the pool is already above 95% full (ADR-0067 D6).
Free space in the pool, ask for a smaller volume, or raise `overcommit.maxRatio` in the `kind: StoragePool` knowing a full pool fails every volume in it.
DX-5203conflictvolume5volume is in use
A container mounts the volume, or a share is carved out of its data, and removing it would take their data from under them.
Remove what the message lists first (`delonix container rm`, `delonix volume rm <share>`), or ask for the removal with force to destroy the data anyway.
DX-5204conflictvolume5the storage pool was not created by this helper
`destroy-pool` destroys only a pool the administrator's allowlist marks with a `create:` block and that carries the helper's own creation mark. A pool that existed before the engine, or one whose mark is missing, is never destroyed (ADR-0067 D5).
Remove the pool's entry from `/etc/delonix/storage-pools.yaml` to stop using it; destroying what backs it is the administrator's own decision, outside this engine.
DX-5205conflictvolume5a device named for the pool cannot be used
`create-pool` was refused before it wrote anything: a device in the pool's `create.devices` carries a filesystem or volume signature, does not resolve to a block device, or the volume group, zpool or mount point it would create already exists.
Check the device the message names. To overwrite a signature, pass `--wipe-devices` at the terminal, knowing it destroys what is on the device.
DX-5301conflictnetwork5network already exists
A NetworkStore network with that name already exists.
Pick another name, or remove the existing one first (`delonix network rm <name>`).
DX-5302conflictnetwork5no 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-5303conflictnetwork5subnet 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-5304conflictnetwork5network 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-5305conflictnetwork5base 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-5306conflictnetwork5ingress 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-5307conflictnetwork5network 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-5308conflictnetwork5address 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-5360conflictnetwork5VIP pool overlaps an address range in use
The VIP pool shares addresses with something this node routes or serves: an engine network, a CNI pod range, a kind cluster's pod or service subnet, a host address or route (a VPN included), or the holder's own subnets (ADR-0066 D2). A VIP there would shadow real addresses.
Choose a pool nothing on this node uses (`delonix network vip-pool set <cidr>`); the message names the overlapping source.
DX-5389conflictnetwork5the 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-5390conflictnetwork5the plan was computed against a state that has changed since
`stack apply --plan-digest` was given a digest, and the digest recomputed now for a network document is not among the ones given: the manifest, what the provider holds, the provider, its capabilities or the catalog changed between the plan and the apply. ADR-0059 D5 reason `stale_plan`. Nothing was written.
Plan again (`delonix stack plan -o json`), read what changed, and apply with the new `planDigest`.
DX-5501conflictvm5VM 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-5502conflictvm5VM 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-5503conflictvm5snapshot 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-5504conflictvm5the 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-5505conflictvm5the 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-5506conflictvm5the 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-5507conflictvm5the 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-5508conflictvm5the hypervisor's network is not on the declared subnet
The hypervisor already has a network with the name the VM asked for, on a different subnet than the one declared for it. The engine redefines such a network only when it defined it itself and no VM is on it; otherwise it refuses, because attaching the VM would put it on a subnet nobody declared.
Remove the VMs still on the old network first, or give the delonix network another name. A network the engine did not define is the operator's: change or remove it with `virsh net-edit`/`virsh net-undefine` if that is what you want.
DX-5515conflictvm5the 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-5516conflictvm5the 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-5517conflictvm5the 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-5601conflictstack5a resource the manifest declares is held by someone else — nothing was changed
The plan holds a `Conflict`: a resource of this name already carries another stack's `delonix.io/stack` stamp, or (a VM) the provider holds one this node's registry does not know. Two stacks converging one resource would flap it between two shapes on every apply, so `stack apply` refuses the whole apply before anything is touched, `stack apply --dry-run` exits with this code after printing the manifest, and `stack plan --detailed-exitcode` exits with it instead of 0 or 2. No flag authorises it.
Apply it from the stack that owns it, remove it there first, or rename it in this manifest; `stack plan` names the owner.
DX-6000unavailableengine69unavailable 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-6001unavailableengine69the node API does not serve this yet
The operation is in the contract (`proto/delonix/node/v1`) and this engine version does not serve it: the message names the ADR step that brings it. The HTTP status is 501 Not Implemented, not 503: retrying will not help.
Use the CLI for the operation meanwhile, or an engine version that serves it (`GET /v1/node` gives the version).
DX-6101unavailablecontainer69container has not finished mounting
The container's process runs, but its start passed the mount ceiling before the init said its filesystem was in place, so a command entering it now could run on the host's filesystem. Commands that enter it are refused until the init says so.
Wait and retry: the refusal lifts on its own once the mounts finish. If it never does, look at the volumes it mounts (an unresponsive NFS server is the usual cause) and restart the container.
DX-6102unavailablecontainer69the container's cgroup group could not be created or limited
As root, a container that names a cgroup group is placed under `delonix.slice/<group>/`, and the group's aggregate ceiling is written before the container joins. Creating the group, writing one of its ceilings, or handing a controller down to it failed — and a group without its ceiling would hold nothing, so the container is not started.
Read the message for the file and the error. Check that `delonix.slice` hands down the `memory`, `cpu` and `pids` controllers (`delonix system doctor`), and that no other process sits directly in the group's directory.
DX-6201unavailablevolume69could 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-6202unavailablevolume69unsupported 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-6203unavailablevolume69the storage pool cannot be used on this host
No allowlist of storage pools exists on this node, the pool's driver is not built in this version, or the probe found the backing object missing or not writable. Nothing was created.
Follow the remedy in the message: have the administrator declare the pool in `/etc/delonix/storage-pools.yaml`, create its directory, or give this user write access to it.
DX-6204unavailablevolume69the state of the storage pool could not be determined
The listing that would say whether the pool is usable needs a privilege this process does not have, or the allowlist could not be read. An empty answer obtained without the privilege to list is never read as «no pools» (ADR-0067 D3.5).
Follow the remedy in the message; nothing was created or changed.
DX-6205unavailablevolume69this process cannot remove the volume's data
Some of the volume's data is owned by a mapped subuid (written by a container in a user namespace), and the node API has no way into that user namespace yet; removing what it can read would leave the volume half deleted. Nothing was removed.
Remove it with `delonix volume rm <name>`, which removes mapped data from inside the user namespace that owns it.
DX-6206unavailablevolume69the privileged storage helper cannot be reached
The pool's driver needs an operation only root can do (LVM-thin, a ZFS mount), and neither the socket-activated helper nor an in-process root engine is configured on this node. Nothing was created (ADR-0067 D3).
Install the helper units and enable `delonix-storage-helper.socket`, and add this user to the pool's `allowUsers`; or run the engine as root with `mode: in-process` in the allowlist.
DX-6301unavailablenetwork69'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-6302unavailablenetwork69this 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-6305unavailablenetwork69namespace isolation would not be enforced on this host
A named namespace was asked for, but the kernel is not filtering traffic inside a bridge (br_netfilter not loaded, or net.bridge.bridge-nf-call-iptables=0). Every isolation rule would install and none would block anything.
Load br_netfilter and set bridge-nf-call-iptables=1 (`delonix system doctor` prints the commands, `install.sh --tune` persists them), or set DELONIX_ALLOW_UNENFORCED_ISOLATION=1 to run without isolation on purpose.
DX-6360unavailablenetwork69no VIP pool configured
A Service with `type: VirtualIP` was applied on a node with no VIP pool. There is no default pool on purpose: a universal reservation would take a range away from every host this engine runs on (ADR-0066 D2).
Configure one with `delonix network vip-pool set <cidr>` (or `DELONIX_SERVICE_VIP_CIDR` for one process), or use `type: DNS`.
DX-6361unavailablenetwork69VIP hairpin needs br_netfilter
Bridged traffic does not pass through netfilter in the holder (`net.bridge.bridge-nf-call-iptables` is not 1, or `br_netfilter` is not loaded), so a client on its backends' own network would time out on the VIP (ADR-0066 D5).
Load the module on the host (`modprobe br_netfilter`); `install.sh` does it by default.
DX-6381unavailablenetwork69no 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-6383unavailablenetwork69the 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-6501unavailablevm69VM 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-6502unavailablevm69no VM backend available
Auto-detection found neither Cloud Hypervisor nor libvirt+qemu installed.
Install cloud-hypervisor or libvirt+qemu.
DX-6503unavailablevm69no 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-6504unavailablevm69cloud-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-6505unavailablevm69could 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-6506unavailablevm69Proxmox 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-6507unavailablevm69capability 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-6508unavailablevm69the 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-6509unavailablevm69the 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-6510unavailablevm69the 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-6511unavailablevm69the 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-6512unavailablevm69the 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-6513unavailablevm69the 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-6514unavailablevm69the 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-6515unavailablevm69the VM's CPU and memory ceilings cannot be enforced
A Cloud Hypervisor VMM starts inside its own cgroup leaf, with the VM's CPU and memory as the leaf's ceilings, so the process that holds the vCPUs and the guest's RAM is the one limited. No leaf can exist for it on this host (rootless without a delegated cgroup, or no leaf provider in this process), or a ceiling did not land on the leaf. Nothing was created.
Run the engine where it can create cgroups: as root, or rootless under a delegated scope (`systemd-run --user --scope -p Delegate=yes -- delonix vm create ...`). To start the VM without ceilings on purpose, set DELONIX_ALLOW_UNENFORCED_LIMITS=1.
DX-6601unavailablestack69git is not installed
A GitOps pass fetches with the system's `git(1)` (ADR-0021 decision 2: a subprocess, not a library), and this node has none on `PATH`.
Install the `git` package (`apt install git`, `dnf install git`).
DX-6602unavailablestack69the source could not be fetched
`git fetch` of the source's ref failed: the remote is unreachable, the ref does not exist, the key or the pinned host key was refused, or git refused the objects (`fsckObjects`). Nothing was read and the running stack is untouched.
Check the URL and the ref, that the node reaches the remote, and that the deploy key and the pinned host keys in the named secrets are the right ones.
DX-6603unavailablestack69the GitOps timer could not be installed
A source with `sync.automated: true` installs a systemd timer, and `systemctl` is missing or refused (no user manager in this session, for a rootless node).
Run it where systemd manages the user (`loginctl enable-linger`), or set `sync.automated: false` and run `delonix gitops reconcile` from your own scheduler.
DX-6701unavailablecluster69RETIRED — the default CNI of a multi-node kubeadm cluster is no longer refused
No longer raised (kept so `explain DX-6701` stays honest for older output). A kubeadm cluster with more than one node and `cni: default` was once refused here, because the default CNI was a node-local bridge that routes nothing between nodes. The engine now RESOLVES `default` to Cilium on that path (`net_profiles::resolved_profile`), the HA default cross-node pod network — a single node still gets the bridge, and `mode: kind` still gets kindnet. See ADR-0078 (amended 2026-10-27).
Nothing to do: `cluster kubeadm` with several nodes and `cni: default` now brings up a working Cilium cluster on its own. To pick a different pod network, pass `--cni cilium|calico|flannel` (with `--experimental-cni`) or `--cni none` to apply your own.
DX-6702unavailablecluster69two or more cluster nodes resolved to the same address
Every machine of a kubeadm cluster was provisioned, but two or more of them resolved to the SAME address, so the bootstrap would open one SSH session per node and several would land on one machine while the rest were never configured. The usual cause is a golden image that ships a baked-in identity: `/etc/machine-id` is non-empty inside the image, every clone derives the same systemd DHCP client identifier from it (DUID-EN, enterprise number 43793), and a DHCP server keys its leases by client identifier when one is present — so N clones are treated as ONE client and a single lease migrates to whichever asked last, leaving them all holding the same address. Refused here, before any host is prepared; without this check the run failed much later and much further away, as an unrelated `mv: cannot stat '/tmp/delonix-cri'` from a prep step racing itself over one host.
Check it with `virsh net-dhcp-leases <network>`: one entry for N running clones, all sharing a `Client ID or DUID`, is this bug. `delonix vm image build` has emptied `/etc/machine-id` as its last step since v0.10.0 — an image built before that keeps a real one, so rebuild the image (`delonix vm image build`) and create the cluster again. For an image you did not build here, empty the file rather than deleting it (`truncate -s 0 /etc/machine-id`, zero bytes, so systemd generates one per boot) and remove any persisted DHCP lease or DUID state under `/var/lib/dhcp/` and `/var/lib/systemd/network/`.
DX-6703unavailablecluster69the pod network of a live cluster is not changed in place
The cluster already runs one pod-network profile and the manifest now asks for another. There is no supported migration: the two profiles own the same pod CIDR, the same `/etc/cni/net.d` and the same iptables/eBPF state on every node, and nothing in this engine drains, re-addresses and re-attaches every pod. Applying the second one over the first would leave two owners of the pod network and a cluster whose behaviour depends on which agent wrote a rule last. The cluster is left untouched and still running the profile it had.
Create a new cluster with the profile you want and migrate the workloads. If the goal is to repair an installation of the SAME profile, re-run the apply: that path is idempotent.
DX-6704unavailablecluster69the pod-network artefact could not be obtained or did not match its digest
The pinned install artefact for the chosen profile (a manifest, or a Helm chart tarball) could not be downloaded, or its content did not match the SHA-256 this release pins. In offline mode it means the artefact is not in the local cache at all. Either way the bootstrap stops BEFORE applying anything: an artefact whose bytes changed is not installed on the strength of its URL.
Online: check the host's own network reach to the publisher and re-run. Offline: pre-populate the cache with `delonix cluster network fetch --cni <profile>` on a machine that has reach, then copy `<root>/net-profiles/` across. A digest mismatch on a reachable publisher means this release's pin and the published artefact disagree — report it rather than working around it.
DX-7000permission deniedengine77permission 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-7201permission deniedvolume77the administrator's allowlist does not permit this
The pool is not in the administrator's allowlist of storage pools, or the volume asked for is larger than the pool's `maxVolumeBytes`. A manifest can only use what the administrator declared (ADR-0067 D3).
Ask the administrator to add the pool to `/etc/delonix/storage-pools.yaml` or to raise its `maxVolumeBytes`; or use a pool `delonix get storagepools` lists.
DX-7202permission deniedvolume77the storage helper does not serve this user for this pool
The helper reads the caller's uid from the socket itself (`SO_PEERCRED`) and serves only a uid the pool's `allowUsers` names. An empty `allowUsers` serves nobody.
Ask the administrator to add this user to `allowUsers` of the pool in `/etc/delonix/storage-pools.yaml`.
DX-7203permission deniedvolume77a pool administration command needs root
`delonix-storage-helper create-pool` and `destroy-pool` write to raw devices, volume groups and pools: they run only as root, at a terminal, never on a manifest's word.
Run it with `sudo` at a terminal.
DX-7385permission deniednetwork77the 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-7601permission deniedstack77the commit is not signed by a trusted key
The source asks for signed commits and `git verify-commit` did not accept the commit against the SSH `allowed_signers` in `trustedKeysRef`: unsigned, signed by another key, or signed with GPG (only SSH signatures are verified). Nothing was read from it.
Sign the commit with a key listed in the trusted keys secret, or add the signer's key to it on the node.
DX-7801permission deniedsecurity77source-check override not granted by the node policy
A container asked for an anti-spoofing exception (`--allow-source` or `--no-source-check`) that this node's runtime policy does not grant. These are permissions, not ceilings: without `allowedSourcePrefixes` / `allowSourceCheckOptOut` in the policy nothing is granted. The refusal is in the event log.
Ask the node administrator to grant it in the runtime policy (`kind: RuntimePolicy`), or drop the flag. A prefix must sit inside one the policy grants.
DX-7802permission deniedsecurity77refused by the node's runtime policy
The node's admission point (`policy.json`, `kind: RuntimePolicy`) refused the workload before anything was created: a container, pod or VM asked for something the policy forbids (privileged, host network, an unlisted registry, device passthrough, or what `workloadSecurity: baseline` refuses). Every reason is named, and the refusal is in the event log. It is a permission refusal, so it exits 77 like the other policy refusals.
Drop what the policy forbids from the request, or ask the node administrator to change the runtime policy (`kind: RuntimePolicy`). `delonix describe runtimepolicies` prints what is in force.
DX-8000timeoutengine124timed 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-8101timeoutcontainer124container 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-8201timeoutvolume124TrueNAS 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-8501timeoutvm124Proxmox 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-8502timeoutvm124Proxmox 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-8503timeoutvm124VM did not come up before the boot timeout
`--wait` gave the VM the whole `--boot-timeout` and never saw it answer: no address yet, or an address that never replied. The VM is left as it is, still running.
Watch the boot with `delonix vm console <name>`; raise `--boot-timeout` for a slow guest, or `delonix vm rm` it if it will not boot.
DX-8504timeoutvm124the hypervisor assigned the resource, but the guest has not used it yet
`vm update` added a vCPU or memory and the hypervisor confirmed it, but within the wait deadline the guest had not activated it (CPU onlined, memory block online) — or the backend has no channel to see the guest at all (ADR-0068 D4). The record already holds the hypervisor-assigned value: a restart will not drop it.
Give the guest more time and check again with `delonix vm describe`; a guest without the onlining policy (ADR-0068 D8) may never activate it on its own.
DX-8601timeoutstack124git did not finish in time
A git invocation of a GitOps pass ran past its ceiling (120 s) and was stopped, so a hung remote does not hold the source's lock until the next fire.
Check that the remote answers; the next fire tries again.
DX-9000system failureengine1a 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-9001system failureengine74I/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-9002system failureengine1invalid 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-9003system failureengine1the 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-9004system failureengine1no 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-9005system failureengine1the node API failed while answering
The node API could not compute its answer: a probe it runs panicked or a value it reads could not be produced. The message carries what failed.
Read the message; the server's log (`delonix serve node-api`) has the detail. Report it if it repeats.
DX-9201system failurevolume1a 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-9202system failurevolume1TrueNAS 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-9203system failurevolume1TrueNAS 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-9204system failurevolume1could 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-9205system failurevolume1TrueNAS 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-9206system failurevolume1TrueNAS 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-9207system failurevolume1TrueNAS 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-9208system failurevolume1TrueNAS 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-9301system failurenetwork1a 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-9302system failurenetwork1could 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-9304system failurenetwork1OPNsense 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-9307system failurenetwork1OPNsense 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-9308system failurenetwork1OPNsense 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-9401system failureimage1registry 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-9402system failureimage1a 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-9403system failureimage1content 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-9404system failureimage1overlay 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-9501system failurevm1VM 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-9502system failurevm1Cloud 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-9503system failurevm1VM 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-9504system failurevm1snapshot 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-9505system failurevm1no 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-9506system failurevm1VM 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-9507system failurevm1live 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-9508system failurevm1could 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-9509system failurevm1cloud-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-9510system failurevm1Proxmox 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-9511system failurevm1Proxmox 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-9512system failurevm1Proxmox 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-9513system failurevm1Proxmox 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-9514system failurevm1could 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-9515system failurevm1Proxmox 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-9516system failurevm1Proxmox 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-9517system failurevm1Proxmox 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-9525system failurevm1discarding 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-9901system failurehost1a 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ódigoSubstituído porÚltima releaseMensagem e significado
DX-1329DX-1361v5.1.1VIP 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).
DX-1330DX-1361v5.1.1especificaçã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.
DX-1342DX-6381v4.5.0nã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-1343DX-1380v4.5.0o 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-1345DX-1380v4.5.0nenhum 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-1346DX-1380v4.5.0provider 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-1347DX-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-1348DX-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-1551DX-1552v5.0.0regra 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).
DX-5340DX-5389v4.5.0objecto 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-5341DX-5389v4.5.0objecto 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-5342DX-5389v4.5.0o 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-6303DX-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-6304DX-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-9303DX-6383v4.5.0o 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-9305DX-7385v4.5.0o 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-9306DX-7385v4.5.0o OPNsense recusou a operação
HTTP 403: uma key/secret válida sem o privilégio que esta rota exige.
CodeReplaced byLast releaseMessage and meaning
DX-1329DX-1361v5.1.1VIP outside the ingress address space
A load-balancer VIP is outside the ingress address space (10.200-254.x).
DX-1330DX-1361v5.1.1invalid load-balancer spec
An `lbset` backend list has a bad weight, a backend with no port, an invalid backend, or is empty.
DX-1342DX-6381v4.5.0not 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-1343DX-1380v4.5.0OPNsense 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-1345DX-1380v4.5.0no 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-1346DX-1380v4.5.0ambiguous 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-1347DX-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-1348DX-6381—the named network provider is not registered
A document names a provider that is not registered for its role (ADR-0059 D3).
DX-1551DX-1552v5.0.0invalid 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).
DX-5340DX-5389v4.5.0remote 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-5341DX-5389v4.5.0remote 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-5342DX-5389v4.5.0remote 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-6303DX-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-6304DX-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-9303DX-6383v4.5.0the 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-9305DX-7385v4.5.0OPNsense 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-9306DX-7385v4.5.0OPNsense refused the operation
HTTP 403: a valid key/secret without the privilege this route needs.
Delonix Engine · Apache-2.0 · ngolacloud/delonix · Referência gerada do --help real do binário por docs/gen.py.Delonix Engine · Apache-2.0 · ngolacloud/delonix · Reference generated from the real --help of the binary by docs/gen.py.