ネットで調べたところ
Luaの関数は引数すくないとnilになる

たとえば
function aaa(a,b)
において
aaa(a)

aaa(a,nil)
ということらしいが

msg.post(url, message_id)

msg.post(url, message_id,{})
ということらしい

msg.post(url, message_id, nil)
だとランタイムエラー
テーブルではないからということらしい