Skip to main content

Troubleshooting

Janus connection - connection timeout

One of the most common problems, that the users web browser cannot communicate to the Janus service. There might be several problems: Janus s behind a firewall or in a NAT network or having a private IP. For advanced Janus configurations please refer to Janus explanation and configuration.

WebRTC not supported

WebRTC connection to insecure sites is turned off by default on many browsers. To be able to use the development product version user will need to enable that. For Chrome users please refer to Enabling WebRTC on Chrome.

For production, SSL will need to be turned on for the web services. For this, please refer here.

SSL set up is also feasible for development, just a debug certificate may be used.

Loading...

Windows can interfere with WebRTC connection to insecure sites. To by pass this problem and to use development product version user may need to disable windows firewall.

Windows 11: Select Start, then open Settings. Under Privacy & security, select Windows Security > Firewall & network protection. Switch the setting to off.

Windows 10: Select Start button > Settings > Update & Security > Windows Security and then Firewall & network protection. Switch the setting to off.

Liveness check not passing

Liveness check operation is dependant on face stream quality, lightening and other surroundings. If liveness failure is not clear, please enable saving images and contact Neurotechnology support.

Bad frame quality

Usually WebRTC connection is trying to lower the resolution to maintain good frame quality. It is possible that slow devices will still produce lower quality images, as some browsers require more resources for frame encoding.

In addition, user may notice, that first frames that MegaMatcher ID server receives contains decoding artifacts and rather bad quality. This is due to the codecs used for frame encoding on the client side and decoding on the server side. Usually it takes to process up to 20 frames by the decoder in order to have good quality images. To avoid processing first X bad quality images in biometric operation, one can use FramesToSkip parameter.

Low frame resolution

When streaming images over a WebRTC connection, the web browser automatically adjusts the frame rate and resolution to maintain a smooth experience based on network conditions. On slower connections, this often results in reduced image resolution, as there is no built-in mechanism to manually control this adjustment. Consequently, the product may not perform optimally in low-bandwidth environments.

To prevent the extraction of low-resolution frames, you can adjust StrictQualityImageSize. However, this may lead to a poor user experience if the network slows down during the capturing process and does not recover.

Additionally, StrictQualityTimeout allows you to specify how long (in milliseconds) the system should wait for an image to meet the StrictQualityImageSize requirement before proceeding.

Retrieving debug information

When contacting for product support it is useful to provide some service logs and images to diagnose the problem.

Downloading exceptions and settings

Exceptions (see here for more details) and settings contain essential information that helps us understand the specific circumstances of the problem. Both are available through the MegaMatcher ID Management Web interface. To download Exceptions, go to Exceptions -> Export. To download Settings, go to Settings -> Management -> Download.

Enabling debug logs

By default info logging is used. More verbose logging can be enabled with ctl configuration script under development properties option. All service logs can be viewed by docker logs command.

Enabling saving images

By default image saving is enabled. That can be changed with ctl configuration script under development properties option. Images are saved in /opt/megamatcherid/megamatcherid-server/images/ directory with information about each captured frame. During issue report to Neurotechnology support, it is advised to provide some images so the problem can be diagnosed easier.

Basic Docker commands

docker ps command lists all running Docker containers. The output allows to see Docker container status. Non working container statuses might contains keywords such as restarting, etc.

root@megamatcherid-pc:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a4ae803c6d80 mmid-data-service:latest "java -jar -Dmmid.data…" 2 days ago Up 2 days mmid-data-service
6b753fdd42e7 mmid-management-web:latest "/docker-entrypoint.…" 2 days ago Up 2 days mmid-management-web
e57bdd0c217d mmid-janus:latest "bash -c './opt/janu…" 2 days ago Up 2 days mmid-janus
4ac49f716b7b mariadb:10.6 "docker-entrypoint.s…" 2 days ago Up 2 days mmid-db
bf7566fbbf5f mmid-management:latest "bash -c ' java -jar…" 2 days ago Up 2 days mmid-management
198df0fdc2c4 mmid-biostream-server:latest "/usr/local/NFVBioSt…" 2 days ago Up 2 days mmid-biostream-server
38b063e120ce mmid-web-server:latest "/docker-entrypoint.…" 2 days ago Up 2 days mmid-web-server
36286611cd67 mmid-licensing-server:latest "./MegaMatcherIdLice…" 2 days ago Up 2 days mmid-licensing-server

docker logs <container-name> command can be used for retrieving logs. The command supports tail tag.

root@megamatcherid-pc:~# docker logs --tail 4 mmid-management
2021-11-12 15:10:24.453 INFO 1 --- [o-40002-exec-25] c.n.f.services.impl.JanusServiceImpl : Request to connect to the session 2768748372865358 received
2021-11-12 15:10:24.542 INFO 1 --- [o-40002-exec-25] c.n.f.services.impl.JanusServiceImpl : Connection to the session 2768748372865358 granted
2021-11-12 15:10:27.667 INFO 1 --- [io-40002-exec-4] c.n.f.services.impl.JanusServiceImpl : Request to destroy session: 2768748372865358 received
2021-11-12 15:10:27.669 INFO 1 --- [io-40002-exec-4] c.n.f.services.impl.JanusServiceImpl : Session 2768748372865358 destroyed successfully

When contacting Neurotechnology support, Docker logs can be easily piped to a file and send for inspection:

root@megamatcherid-pc:~# docker logs mmid-management > mmid-management.log

docker start <container-name> and docker stop <container-name> commands can be used to start or stop running containers.