stanfordnlp/CoreNLP · error · RuntimeException

ERROR: failed to find Properties in the given arguments!

Error message

ERROR: failed to find Properties in the given arguments!

What it means

RuntimeException from MachineReading.makeMachineReading when the command-line arguments do not contain a usable Properties specification (the args must define the pipeline properties, typically via -props or key=value pairs); without them the machine-reading system cannot be configured.

Solutions

  1. Pass a -props file with the MachineReading configuration
  2. Or supply key=value arguments recognized by StringUtils.argsToProperties
  3. Check that argument parsing did not consume the properties flag
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/edu/stanford/nlp/ie/machinereading/MachineReading.java:214 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of stanfordnlp/CoreNLP@1b7edd19c4 (2026-09-10). Data as JSON: /api/errors/8aae6a963036f7f8. Report an issue: GitHub.

Appendix: source

Thrown at src/edu/stanford/nlp/ie/machinereading/MachineReading.java:214

      mr.relationExtractor.setLoggerLevel(level);
    if (mr.eventExtractor != null)
      mr.eventExtractor.setLoggerLevel(level);

    return mr;
  }

  public static MachineReading makeMachineReading(String [] args) throws IOException {
    // install global parameters
    MachineReading mr = new MachineReading(args);
    //TODO:
    ArgumentParser.fillOptions(MachineReadingProperties.class, args);
    //Arguments.parse(args, mr);
    log.info("PERCENTAGE OF TRAIN: " + MachineReadingProperties.percentageOfTrain);

    // convert args to properties
    Properties props = StringUtils.argsToProperties(args);
    if (props == null) {
      throw new RuntimeException("ERROR: failed to find Properties in the given arguments!");
    }

    String logLevel = props.getProperty("logLevel", "INFO");
    setLoggerLevel(Level.parse(logLevel.toUpperCase()));

    // install reader specific parameters
    GenericDataSetReader reader = mr.makeReader(props);
    GenericDataSetReader auxReader = mr.makeAuxReader();
    Level readerLogLevel = Level.parse(MachineReadingProperties.readerLogLevel.toUpperCase());
    reader.setLoggerLevel(readerLogLevel);
    if (auxReader != null) {
      auxReader.setLoggerLevel(readerLogLevel);
    }
    log.info("The reader log level is set to " + readerLogLevel);
    //Execution.fillOptions(GenericDataSetReaderProps.class, args);
    //Arguments.parse(args, reader);

    // create the pre-processing pipeline

View on GitHub (pinned to 1b7edd19c4)