Skip to content

lexical error: invalid char in json text. #1729

Description

@stefan123t

lnav version

$ lnav --version
lnav 0.14.0

Describe the bug

Querying the SQLite DB fails with the following error(s):

2026-07-21T14:25:38.178581+02:00 D t0 [4152944::rebuild_indexes-0::rebuild_file_index-4] log_format.cc:2000 Unable to parse line at offset 26440: lexical error: invalid char in json text.
                                      {javax.xml.ws.security.auth.user
                     (right here) ------^

Here is an example logline with multiline message body.

<Jul 21, 2026 3:28:22,586 AM CEST> <Notice> <Stdout> <BEA-000000> <<Jul 21, 2026 3:28:22,585 AM CEST> <Error> <vendor.wsm.resources.security> <WSM-00279> <The following Fault Message is received at the client side from the service:-
Exception not allowed for this object.

The client side policy is:-
vendor/policy.

The service endpoint url is:-
https://server.example.com/ServiceModel/ObjectLookupWebServicePort.

Keystore properties:-
 {}.

Properties found in the message context (Partial list):-
{javax.xml.ws.security.auth.username=USER}.

 PolicyReference OverrideProperty:
[OverrideProperty [name=uri, value=vendor/policy], OverrideProperty [name=local.policy.reference.source, value=PROGRAMMATIC]]

Policy configuration properties (some of these may be overridden by the properties passed in the PolicyReference or message context, for details about the order of precedence of properties consult documentation):-
{1.1=vendor.security.xmlsec.wss.saml.SAMLAssertionToken@3aba94a0, include-timestamp=false, user.roles.include=false, saml.issuer.name=www.vendor.com, csf-key=basic.credentials}.

Other related information:-
{vendor.integration.platform.common.subject=Subject:
        Principal: BPMWorkflowReassign
        Principal: USER
        Principal: authenticated-role
        Principal: anonymous-role
, subject.precedence=true}.>>

To Reproduce
Steps to reproduce the behavior:

I can read a set of logfiles just fine, but when I execute the following SQL Lite command against the parsed logformat lnav 0.14.0 crashes (see crash-2026-07-21-14-25-55.4152944.log).

crash-2026-07-21-14-25-55.4152944.log

;SELECT count(*) AS occurrence, error_message FROM weblogic_format WHERE error_code = 'BEA-000000' GROUP by error_message;

This used to work with the previous version, e.g. 0.13.2

Here is my current weblogic_format.json Logfile Format:

weblogic_format.json

Thanks for your great tool, your attention to many details and tedious maintenance is much appreciated!

Note: it would greatly improve readability and documentation if you could switch to JSONC for the parser, so we can add comments in the config / code.

Note 2: a way to define custom regex patterns (like the ubiquituos timestamp-format) , which can be re-used in the regex log-format pattern lines or sub-patterns would make the log format more readable and easier maintainable too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions