Skip to content

[BUG]: Erro 500 "Lyrics runtime contract is incomplete" no Worker (v3.7.0) #204

@trashhme

Description

@trashhme

NodeLink version

3.7.0

Description

Opa, tudo bem? Encontrei um bug na versão 3.7.0 ao tentar buscar letras.

O Problema:
Quando o bot faz a requisição para /v4/loadlyrics e ela é atendida diretamente por um Worker (ex: processo de playback), o servidor retorna o erro 500 - Lyrics runtime contract is incomplete.

A Causa:
No arquivo src/api/loadLyrics.ts, a função handler assume que nodelink.sourceWorkerManager ou nodelink.workerManager sempre estarão disponíveis para fazer o delegate. Porém, quando a requisição já cai dentro do contexto do funcionário (Worker), ele não possui o workerManager, retornando undefined. A verificação falha e o código cospe o erro 500 em vez de processar a letra localmente.

A Solução paliativa que usei:
Removi a trava estrita do getLoadLyricsRuntime e adicionei um fallback no final do handler para usar o runtime.lyrics.loadLyrics caso o workerManager não seja encontrado. Assim, se a requisição cair no worker, ele mesmo resolve a letra.

Só avisando pra vocês conseguirem corrigir num próximo patch! Valeu pelo projeto! 💙

Client

lavalink-client

Steps to reproduce

Fazer uma requisição HTTP para a rota /v4/loadlyrics que acabe sendo roteada diretamente para o Worker.
O erro 500 será retornado imediatamente pelo Worker.

Example code

No response

Confirmations

  • My environment meets the minimum requirements.
  • I have verified that this is not a duplicate issue.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingnot confirmedThis issue or pull request is not confirmed to be done.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions