2025-03-03T21:27:16.248287Z DEBUG main kumod::logging: Joined -> Some(Ok(()))
2025-03-03T21:27:16.248338Z INFO main kumod::spool: Shutting down spool
Error: Initialization raised an error: call validate_config callback: runtime error: /opt/kumomta/share/policy-extras/sources.lua:75: /opt/kumomta/share/policy-extras/sources.lua:41 SourcesHelperConfig: invalid value for field 'source'
/opt/kumomta/share/policy-extras/sources.lua:41 Expected value of type 'map<string,SourceConfig>' and encountered an error during coercion
/opt/kumomta/share/policy-extras/sources.lua:41 /opt/kumomta/share/policy-extras/sources.lua:75: /opt/kumomta/share/policy-extras/sources.lua:41 map<string,SourceConfig>: invalid value for key 'ip-1'
/opt/kumomta/share/policy-extras/sources.lua:41 Expected value of type 'SourceConfig' and encountered an error during coercion
/opt/kumomta/share/policy-extras/sources.lua:41 /opt/kumomta/share/policy-extras/sources.lua:75: /opt/kumomta/share/policy-extras/sources.lua:41 SourceConfig: unknown field 'socks5_proxy_server'
stack traceback:
[C]: in function 'error'
/opt/kumomta/share/policy-extras/typing.lua:78: in method 'raise'
/opt/kumomta/share/policy-extras/typing.lua:249: in metamethod 'newindex'
/opt/kumomta/share/policy-extras/typing.lua:258: in function </opt/kumomta/share/policy-extras/typing.lua:253>
(...tail calls...)
/opt/kumomta/share/policy-extras/sources.lua:41: in upvalue 'load_data_from_file'
/opt/kumomta/share/policy-extras/sources.lua:75: in function </opt/kumomta/share/policy-extras/sources.lua:68>
stack traceback:
[C]: in local 'poll'
[string "?"]:4: in main chunk
(...tail calls...)
/opt/kumomta/share/policy-extras/queue.lua:599: in function </opt/kumomta/share/policy-extras/queue.lua:550>
I see, the underlying error message is getting lost in the lua typing layer. If you make a script like this:
local kumo = require 'kumo'
kumo.make_egress_source {
socks5_proxy_server = 'kumo-proxy:5000'
}
and evaluate it like this, you get a better diagnostic:
$ kumod --script --policy ./proxy.lua
Error: Failed to parse policy file "./proxy.lua"
Caused by:
deserialize error: invalid socket address syntax, while processing {"socks5_proxy_server":"kumo-proxy:5000"}
stack traceback:
[C]: in function 'kumo.make_egress_source'
[string "./proxy.lua"]:3: in main chunk
Thanks Wez