It comes from the following XS code included with DBI:
if (!keep_error && meth_type != methtype_set_err) {
SV *err_sv;
if (trace_level && SvOK(err_sv=DBIc_ERR(imp_xxh))) {
PerlIO *logfp = DBILOGFP;
PerlIO_printf(logfp, " !! %s: %s CLEARED by call to %s method\n",
SvTRUE(err_sv) ? "ERROR" : strlen(SvPV_nolen(err_sv)) ? "warn" : "info",
neatsvpv(DBIc_ERR(imp_xxh),0), meth_name);
}
DBIh_CLEAR_ERROR(imp_xxh);
}
else { /* we check for change in ErrCount during call */
ErrCount = DBIc_ErrCount(imp_xxh);
}
It is simply a print to the trace file of the string "warn", it is not an issued warning. I think it is happening in your case because the connect method is SQLite is setting DBI's err to '0' so it is false but not zero length.
However, I see it happens with multiple DBDs (including DBD::ODBC).