Como resolvi o erro EINVAL: readlink no Next.js quando o projeto vive no OneDrive

Como resolvi o erro EINVAL: readlink no Next.js quando o projeto vive no OneDrive

Diagnóstico rápido: bloqueios e links simbólicos corrompidos dentro de .next devido à sincronização. O meu plano mínimo para limpar, verificar e prevenir que volte a acontecer.

4 min
Hernán Villalba Muzzin

Hernán Villalba Muzzin

Autor do artigo

Leitura

Se trabalhas com Next.js em Windows e tens o repositório dentro do OneDrive, mais cedo ou mais tarde podes cruzar-te com este clássico: EINVAL: invalid argument, readlink ao tentar iniciar o npm run dev.

Aconteceu comigo e resolvi com uma abordagem muito simples: identificar a causa real (bloqueios + links/symlinks estranhos em .next), limpar de forma segura e depois prevenir para não voltar a perder tempo.

## O que está realmente a acontecer

Quando o OneDrive está a sincronizar uma pasta de projeto, pode:

    • bloquear ficheiros enquanto o Next compila
    • “tocar” na metadata de ficheiros/pastas
    • e, em alguns casos, deixar artefactos inconsistentes dentro de .next (que é um diretório volátil e de alta rotação).

Resultado: O Next tenta fazer readlink (ler um link simbólico/junction) e o Windows devolve EINVAL.

## A minha revisão do plano (o que está correto e o que eu acrescentaria)

O teu plano base está correto e é minimalista:

  1. Terminar processos do Node para libertar bloqueios.
  2. Apagar .next (artefactos corrompidos).
  3. Apagar tsconfig.tsbuildinfo para forçar uma recompilação limpa.
  4. Verificar que o servidor de desenvolvimento chega a “Ready” e compila rotas.

O que eu acrescento para torná-lo “à prova de futuro”:

    • Evitar que o OneDrive sincronize .next (ideal) ou mover diretamente o repositório para fora do OneDrive.
    • Se precisares do OneDrive por política de empresa: pelo menos excluir a pasta do projeto ou usar uma localização local não sincronizada e sincronizar apenas documentos/exports.
    • Se a equipa for grande: deixar um runbook (passos + comandos + critérios de sucesso) para que qualquer pessoa o possa executar.

## Passos exatos que utilizo para resolver

Objetivo: voltar a um estado determinístico antes de correr dev.

### 1) Terminar processos que bloqueiam ficheiros

No Windows, o mais prático é fechar os terminais e terminar processos node.exe ativos.

### 2) Limpeza segura de artefactos

Eu apago:

    • .next/
    • tsconfig.tsbuildinfo (se existir)

### 3) Iniciar dev e confirmar “Ready”

O meu critério de sucesso não é “arrancou”, é ver o log com:

    • ✓ Starting...
    • ✓ Ready in Xs
    • e que comece a compilar rotas sem voltar a cair em EINVAL.

## Evidência de verificação (o que espero ver)

Um exemplo típico de um “estado saudável” assemelha-se a isto:

```text

▲ Next.js 15.1.0

    • Local: http://localhost:3000

✓ Starting...

✓ Ready in 7.4s

○ Compiling /src/middleware ... ✓ Compiled /src/middleware ... ○ Compiling /[locale]/contenidos ...

```

Com isso, para mim, o erro fica resolvido.

## Como evito que volte a acontecer

Se queres a minha recomendação direta e sem voltas:

    1. Não tenhas o repositório dentro do OneDrive (melhor opção).
    1. Se não podes evitar:
    • Excluir .next da sincronização (se o teu OneDrive/TI o permitir)
    • ou trabalhar numa pasta local não sincronizada e subir as alterações via Git como deve ser.

.next não é “código fonte”, é lixo útil: se o OneDrive interferir, quebra o teu ciclo de desenvolvimento.

## Se quiseres, deixo isto blindado contigo

Quando este tipo de erro aparece uma vez, costuma ser a ponta do icebergue: caminhos longos, watchers, permissões, cache corrompida, CI diferente do local, etc.

Se quiseres que deixe isto estável (local + CI) e com uma checklist reproduzível, pede-me um diagnóstico.

Auditoria Estratégica

Pontos chave de controle: Como resolvi o erro EINVAL

  • Existe um padrão definido para esta operação?
  • As mesmas dependências se repetem semanalmente?
  • O equipe conhece o critério exato de decisão?
  • Há visibilidade do verdadeiro gargalo do processo?

Compartilhar

Outros artigos que podem interessar-te

TPM e OEE sem maquilhagem: a tua fábrica pode estar cheia… e mesmo assim perder dinheiroOPERACIONES

TPM e OEE sem maquilhagem: a tua fábrica pode estar cheia… e mesmo assim perder dinheiro

Quando a produção depende de ‘esperemos que hoje a máquina aguente’, não tens capacidade: tens sorte. Como eu diagnostico se a fuga é manutenção, setups, micro-paragens ou qualidade, e porque um OEE mal medido te engana quando mais precisas de controlo.

Segurança psicológica na fábrica e na obra: o KPI que ninguém medeOPERACIONES

Segurança psicológica na fábrica e na obra: o KPI que ninguém mede

Como detetar cultura de medo (silêncios, ocultação, incidentes repetidos) e porque afeta qualidade, prazo e margem mais do que muitas iniciativas.

Robotização e cobots em PMEs: automatizar sem quebrar a flexibilidadeOPERACIONES

Robotização e cobots em PMEs: automatizar sem quebrar a flexibilidade

Os robôs já não são apenas para a indústria automóvel. Descubra como os cobots (robôs colaborativos) podem automatizar tarefas repetitivas na sua PME de mobiliário.

Visualização avançada: renders e VR que vendem sem criar dívida operacionalOPERACIONES

Visualização avançada: renders e VR que vendem sem criar dívida operacional

Renders, VR e configuradores não são ‘marketing’: são uma promessa visual. Eu trato isto como sistema de decisão, não como maquilhagem. Sinais, riscos e critérios para perceber se a visualização protege a margem ou a destrói.

Omnicanalidade e experiência phygital: quando o cliente vive um projeto, não um canalOPERACIONES

Omnicanalidade e experiência phygital: quando o cliente vive um projeto, não um canal

Omnicanalidade real em ticket alto: sinais de deriva de canal, riscos operacionais e critérios para diagnosticar se a tua experiência phygital cria confiança… ou empurra para comparação por preço.

Gabinete técnico como guardião da margem antes de venderOPERACIONES

Gabinete técnico como guardião da margem antes de vender

Como identificar (e travar) projetos que se vendem bem mas nascem mal: decisões técnicas, promessas e variabilidade que destroem a margem antes da execução.

Desenho de armazém e fluxo físico: a margem perde-se a andarOPERACIONES

Desenho de armazém e fluxo físico: a margem perde-se a andar

Um armazém não ‘fica desarrumado’: é desenhado, sem querer, para criar percursos, toques e urgência. Eu diagnostico o fluxo físico com sinais simples: quantas vezes tocas numa peça, quanto ela viaja e onde a promessa se parte.

Cibersegurança na fábrica conectada: quando a paragem começa com um cliqueOPERACIONES

Cibersegurança na fábrica conectada: quando a paragem começa com um clique

Uma fábrica conectada não falha só por causa das máquinas: falha por identidades, permissões e verdades incoerentes. Eu não trabalho com medo; trabalho com continuidade, margem e promessas sem heroísmo.