[Relay OP] Check failed: type_code_ == kDLInt (4 vs. 0) : expected int but got NULL

I have met a problem with deformable_conv2d, here is the example code, it will end with throwing a error message 『 Check failed: type_code_ == kDLInt (4 vs. 0) : expected int but got NULL』

from tvm import relay
from tvm.relay import expr as _expr
from tvm.relay import op as _op

x = _expr.var('x', dtype='float32', shape=[1, 512, 19, 19])
kernel = _expr.var('k', dtype='float32', shape=[512, 512, 3, 3])
offset = _expr.var('offset', dtype='float32', shape=[1, 18, 19, 19])
out0 = _op.nn.deformable_conv2d(x, offset, kernel)

Is there any wrong with the code?

It tunes out that the parameter channel cannot be None, after modify the code as bellow, it runs well

from tvm import relay
from tvm.relay import expr as _expr
from tvm.relay import op as _op

x = _expr.var('x', dtype='float32', shape=[1, 512, 19, 19])
kernel = _expr.var('k', dtype='float32', shape=[512, 512, 3, 3])
offset = _expr.var('offset', dtype='float32', shape=[1, 18, 19, 19])
out0 = _op.nn.deformable_conv2d(x, offset, kernel, channels=512)

But the description of this operator says channel is optional, this may cause confuses