pentaho/pentaho-kettle · error · KettleValueException
: can't be converted to an Internet Address
Error message
: can't be converted to an Internet Address
What it means
convertData(fromMeta, data) supports converting only from String, Number, BigNumber, and Internet Address source types. Any other source value meta type falls into the default branch and throws KettleValueException 'can't be converted to an Internet Address'.
Solutions
- Change the source field type to String/Number/BigNumber before conversion (insert a 'Select values' type-change step)
- Convert the source to its String form and let convertStringToInternetAddress handle it
- Correct the transformation mapping so Internet Address fields are fed only from compatible types
Example fix
// before row[ipIdx] = inetMeta.convertData(dateMeta, row[dateIdx]); // after row[ipIdx] = inetMeta.convertData(strMeta, strMeta.getString(row[dateIdx])); // or fix mapping
Defensive patterns
Strategy: type-guard
Validate before calling
int t = fromMeta.getType(); boolean convertible = t == ValueMetaInterface.TYPE_STRING || t == ValueMetaInterface.TYPE_NUMBER || t == ValueMetaInterface.TYPE_BIGNUMBER || t == ValueMetaInterface.TYPE_INET;
Type guard
boolean canConvertToInet(ValueMetaInterface m){ int t=m.getType(); return t==ValueMetaInterface.TYPE_STRING||t==ValueMetaInterface.TYPE_NUMBER||t==ValueMetaInterface.TYPE_BIGNUMBER||t==ValueMetaInterface.TYPE_INET; } Try / catch
try { v = inetMeta.convertData(fromMeta, data); } catch (KettleValueException e) { /* unsupported source type */ } Prevention
- Insert a type-change (Select values) step before Internet Address targets
- Route Date/Boolean sources through String first
- Audit transformation field mappings after edits
When it happens
Trigger: Calling convertData()/convertDataFromString with a source meta of an unsupported type — e.g., Boolean, Date, Timestamp, or Binary source data being converted into an Internet Address field.
Common situations: Field-type remapping in a transformation where a Date or Boolean field was retargeted as Internet Address; generic conversion utilities that pass arbitrary ValueMeta pairs; Excel input producing Date-typed fields routed to IP columns.
Understand the failure class
Background: "is not a compatible type" / "cannot merge" errors: when a value's type doesn't match what the library requires — this error's family across 65 libraries.
Related errors
- ERROR_ARITHMETIC_VALUE
- Error converting data while looking up value
- : I don't know how to convert a binary value to Internet…
- : I don't know how to convert a binary value to timestamp.
- : I don't know how to convert a boolean to a Internet…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/d097008c380e8581.
Report an issue: GitHub.
Appendix: source
Thrown at core/src/main/java/org/pentaho/di/core/row/value/ValueMetaInternetAddress.java:439
* @return the object in the data type of this value metadata object
* @throws KettleValueException
* in case there is a data conversion error
*/
@Override
public Object convertData( ValueMetaInterface meta2, Object data2 ) throws KettleValueException {
switch ( meta2.getType() ) {
case TYPE_STRING:
return convertStringToInternetAddress( meta2.getString( data2 ) );
case TYPE_INTEGER:
return convertIntegerToInternetAddress( meta2.getInteger( data2 ) );
case TYPE_NUMBER:
return convertNumberToInternetAddress( meta2.getNumber( data2 ) );
case TYPE_BIGNUMBER:
return convertBigNumberToInternetAddress( meta2.getBigNumber( data2 ) );
case TYPE_INET:
return ( (ValueMetaInternetAddress) meta2 ).getInternetAddress( data2 );
default:
throw new KettleValueException( meta2.toStringMeta() + " : can't be converted to an Internet Address" );
}
}
@Override
public Object cloneValueData( Object object ) throws KettleValueException {
InetAddress inetAddress = getInternetAddress( object );
if ( inetAddress == null ) {
return null;
}
try {
return InetAddress.getByAddress( inetAddress.getAddress() );
} catch ( Exception e ) {
throw new KettleValueException( "Unable to clone Internet Address", e );
}
}
@OverrideView on GitHub (pinned to f3058517a1)