-- your code goes here o = {} setmetatable(o, { __index = function(target, key) if key ~= "foo" then error('ERR') end if flag then return 1 end return 2 end}) flag = false print(o.foo) flag = true print(o.foo)