Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Leitura morada Cartão Cidadão / PTEID_Exception -506461951 #184

Open
jcprata opened this issue Oct 1, 2024 · 6 comments
Open

Leitura morada Cartão Cidadão / PTEID_Exception -506461951 #184

jcprata opened this issue Oct 1, 2024 · 6 comments

Comments

@jcprata
Copy link

jcprata commented Oct 1, 2024

Bom dia,

Após leitura do método .getCountryCode() (PTEID_Address), é retornado a seguinte exceção (PTEID_Exception):

"A function parameter exceeded the allowed range (-506461951)"

O código para fazer a leitura dos campos da morada é o seguinte:

PTEID_ReaderSet.initSDK();

PTEID_ReaderContext readerContext = PTEID_ReaderSet.instance().getReader();
var card = readerContext.getEIDCard();

PTEID_Pins pins = card.getPins();
PTEID_Pin pin = pins.getPinByPinRef(PTEID_Pin.ADDR_PIN);

PTEID_Address add = null;
if (pin.verifyPin("", ref triesLeft, true))
{
	add = card.getAddr();
}

var countryCode = add.getCountryCode();

PTEID_ReaderSet.releaseSDK();

O que pode estar a causar esta exceção?
Se possível pedia que partilhassem um link com a lista das várias exceções retornadas pelo PTEID_Exception.

Obrigado.

@agrr
Copy link
Collaborator

agrr commented Oct 2, 2024

Boa tarde,

a causa dessa excepção deverá ser uma falha nas operações de leitura do cartão que são necessárias na leitura de morada.

Para podermos diagnosticar deverá executar o programa depois de ativar o modo de diagnóstico na aplicação GUI Autenticação.gov e partilhar as linhas relevantes do ficheiro de log: C:\Program Files\Portugal Identity Card\log\.PTEID*.log

Os códigos de erro retornados especificamente no processo de leitura de morada são os seguintes (constantes com o prefixo EIDMW_REMOTEADDR):

//Errors related to the Remote Address feature

As mesmas constantes estão acessíveis na classe pteidlib_dotNet do SDK .net.

@jcprata
Copy link
Author

jcprata commented Oct 3, 2024

Boa tarde,

O erro que aparece na maioria das vezes (nem sempre) é o seguinte:

17020|28508 - eidlib - DEBUG: PTEID_Exception generated from bytearray.cpp:214 error code: e1d00101

Como contexto, o processo de negócio da aplicação lê vários cartões em sequência, isto é, retirasse o primeiro cartão para ler um segundo. Notámos que esta exceção é despoletada de uma forma não consistente na leitura do segundo.

@agrr
Copy link
Collaborator

agrr commented Oct 8, 2024

Boa tarde,
tentámos sem sucesso até agora reproduzir o problema na leitura de vários cartões em sequência.

Seria importante nestes casos mais específicos termos um log completo da execução do programa, se preferir partilhar de forma privada pode enviar-me diretamente para [email protected]

@Facevisivel
Copy link

Bom dia.
O código de erro que me dá é o pteidlib_dotNet.EIDMW_REMOTEADDR_CONNECTION_TIMEOUT
É um erro novo que acontece depois de chamar uma função da classe PTEID_Address como getDistrictCode ou getDistrict

@agrr
Copy link
Collaborator

agrr commented Oct 14, 2024

Boa tarde,

desde 5.ª feira dia 10, o serviço tem estado indisponível devido ao impacto do ataque informático à AMA.

Essa é a causa do erro de timeout que está a ser lançado neste momento.
Deverá estar para breve o restabelecimento do acesso às mordas pelo que nos informam os responsáveis.

@blasferatu
Copy link

Bom dia.

Este erro passou a ocorrer em computadores ainda com Windows 10, versão 22H2.
Também começou a aparecer num computador com Windows 11, versão 23H2.
Nunca ocorreu numa máquina virtual com Windows 11, versão 22H2.

O meu código original antes do erro aparecer era este:

Pteid.Init(_citizenCardReaderName);
Pteid.SetSODChecking(0);

PteidId citizenID = Pteid.GetID();

PteidAddr citizenAddress = Pteid.GetAddr();

A solução que encontrei para eliminar a ocorrência do erro foi alterar o código para o seguinte:

Pteid.Init(_citizenCardReaderName);
Pteid.SetSODChecking(0);

PteidId citizenID = Pteid.GetID();
Pteid.Exit(0);

Pteid.Init(_citizenCardReaderName);
Pteid.SetSODChecking(0);

citizenAddress = Pteid.GetAddr();

Não faço ideia se a versão do Windows terá alguma relação com o aparecimento do erro.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants