Ao tentar executar o projeto com uvicorn app:app --reload retorna o TypeError se estiver usando a versão 3.9 do python: .
. 
Ao substituir o | por Optional do from typing  já funciona:
 
  
Ao tentar executar o projeto com uvicorn app:app --reload retorna o TypeError se estiver usando a versão 3.9 do python: .
. 
Ao substituir o | por Optional do from typing  já funciona:
 
  
Olá, Kelvin! Como vai?
O erro que você está enfrentando ocorre devido à incompatibilidade de versões do Python. A sintaxe List[str] | None só é suportada a partir do Python 3.10. Como você está usando a versão 3.9, a solução é utilizar o Optional do módulo typing.
Mas você já aplicou essa substituição de List[str] | None por Optional[List[str]]. Mas como o Log de erro aponta que o problema está no trecho List[str] | None = None me leva a acreditar que, você rodou o projeto antes de salvar, ou antes de alterar. Peço que rode novamente, agora, certificando que está salvo e caso o problema ocorra novamente peço que envie o seu projeto por completo para que eu possa fazer testes.
Espero ter ajudado e bons estudos!
Sim, já consegui fazer a excução no python 3.9 usando o Optional.
A ideia é trazer esse tópico caso alguém não possa atualizar o python, como no meu caso.