Troubleshooting for HotPocket Developer Kit

The Troubleshooting Guide for the HotPocket Developer Kit provides solutions for commonly encountered errors during the utilization of the HotPocket devkit.

Furthermore, ensure that your HotPocket Developer Kit installation is up to date by running hpdevkit update.

Possible Error

How to fix it

HotPocket usage limit failure.

Run the hpdevkit update command.

Error response from daemon:
Container <docker_container_name> is not running.

Run docker start <docker_container_name> to start the docker container and verify that the status of the relevant container is up using docker ps -a. You can also use Docker Desktop for this.

Error response from daemon:
Ports are not available

Run hpdevkit clean. If the issue persists, either check and stop any other processes that may be using or blocking the specified port(s) or change the HotPocket user port numbers using HP_USER_PORT_BEGIN.

Cluster ‘default’ already exists.

Run the hpdevkit clean command.

Contract process execve() failed.

The bin_path variable defined in hp.cfg.override is invalid or does not contain the location of a valid application binary.

Contract process ended prematurely. Exit code 0

This occurs when the forceTerminate=true argument is used in the HotPocket contract init function. This will terminate the contract forcefully after the contract execution handler is completed, irrespective of any active listeners present.

Error: Cannot find module

1. The bin_args path defined in hp.cfg.overrride may be incorrect.
2. Differences between Windows and Linux environments might cause this issue as well. In such case, try to use a Linux environment.

HotPocket smart contracts must be executed via HotPocket.

You cannot execute a HotPocket smart contract through the console. Specify the contract path using bin_args variable in hp.cfg.override and run the DApp

Possible fork condition.

This indicates a failure of cluster synchronization after deployment. Ensure that your contract logic maintains the same input, output and state in all the nodes. Consider lowering the cluster size to recreate and isolate the error.

Not enough peers proposing to perform consensus.

This condition occurs before consensus is reached, typically at the initial consensus rounds. This should be a temporary stage. If it persists, check whether each node is operational.

Error: EACCES: permission denied

This occurs when a write command is executed in read only mode. Use an if-else condition to control logic executed in read only mode.

Errors encountered when executing contracts which use timeouts or other asynchronous functions

These errors may occur when the forceTerminate=true argument is not used in the HotPocket contract init function. By adding this argument, the contract will terminate the contract forcefully after the contract execution handler is completed.