Troubleshooting
A guide to some common issues and their resolution.
If something isn’t working, read logs first. Lucille logs are detailed and will usually identify where the problem is coming from.
Build & Java Environment Issues
Java Command Not Found / Wrong Version
Symptoms:
- java: command not found.
- Lucille fails with version errors.
Fix:
- Ensure Java 17+ is installed and on
PATH. - Ensure
JAVA_HOMEpoints to a JDK (not a JRE).
java -version
echo $JAVA_HOME
Example output:
java -version
java version "22.0.1" 2024-04-16
Java(TM) SE Runtime Environment (build 22.0.1+8-16)
Java HotSpot(TM) 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing)
echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-22.jdk/Contents/Home
If unset, refer to the installation guide.
Configuration Issues
Missing or Misspelled Keys
Symptoms:
- Configuration does not contain key “name”.
- Stage/Indexer throws for missing required property.
Fix:
- Compare with component
SPECdocs and ensure required fields exist and are correctly cased.
Invalid Types or List/Map Shapes
Symptoms:
- Expected NUMBER got STRING.
Fix:
- Match the
SPECtype exactly and convert scalars to lists/maps when required.
Kafka / Messaging
Cannot Connect to Kafka
Symptoms:
- Timed out waiting for connection from Kafka.
- Connection to Kafka could not be established.
Fix:
- Verify your
kafka.bootstrapServersin your config. - Check Kafka connectivity to ensure it is reachable.
Solr / Elasticsearch / OpenSearch Connectivity
Cannot Connect to Solr / Elasticsearch / OpenSearch
Symptoms:
- Failed to talk to the search cluster.
- Connection refused or host not found.
Fix:
- Ensure that the URL/port in your config is correct.
- Ensure that the service is reachable from the machine running Lucille.
Certificate / Authorization Problems
Symptoms:
- Handshake failure, certificate not trusted, or unauthorized.
Fix:
- Test connection with auth/TLS disabled for debugging.
- Verify that credentials are correct.
Schema / Mapping mismatches
Symptoms:
- Bulk index partially fails and some documents are rejected.
- Mapping or parsing exceptions.
Fix:
- Read the exact field and reason in the error details and fix that field in your pipeline or mapping.
Timeouts
Lucille has a default timeout specified in runner.connectorTimeout of 24 hours. You can override this timeout in the configuration file. This may be necessary in the case of very large or long-running jobs that may take more than 24 hours to complete.