Attempt to call method 'filter' (a nil value)


I found a warning in aerospike log as subject, does it mean it can’t find method filter?


Yes, this is correct. Would you mind sharing your code so we can help and make sure there is nothing else unexpected happening?

local function filter_clist(clist)
    return function(record)
        for idx=1, list.size(clist), 1 do
            if record.cawlEgId == clist[idx] then
                return true
        return false
local function map_assign(record)
    return map{ skey=record.skey, cawlEgId=record.cawlEgId }
function multifilters(stream, start, stop)
    local my_filter = filter_clist(clist)
    return stream:filter(my_filter):map(map_assign)


I used go cliant. Go codes:

exTask, err := client.ExecuteUDF(queryPolicy, stm, "state_udf", "multifilters", NewValue(clist))


Thanks, let me check on this internally.


StreamUDF is currently not support from the Go client, as it requires the last stage execution to be in Go. The client.ExecuteUDF() call invokes a RecordUDF context on the server side. As a result, the stream functions such as “filter” and “map” are not available in this context.


Is this still true? does this also apply to the nodejs client? I am hitting the same issue here


Node.js client is fully functional w/ StreamUDF.

If there is any separate issues seen with StreamUDF usage under Node.js, would recommend separate discuss item with details to diagnose.