Hi, I am not a good coder on Pytorch, but I can give some rough ideas to fix the error.
First, if I understand your objective correctly, you should extract the pretrained embedding output (not redefine it with FC_Embeddings like you do). So you should send your input to Bert’s pretrained embedding layer. (send input_ids to get the embedded output, let named it x.)
Secondly, only here, that you can use your kwargs['fc_idxs'] to do what you want with x to get your designed output, let simply named it, y.
Then, after this point, you can send y to self.bert's upper layers (not include embdding layer) but not send kwargs['fc_idxs'] to self.bert since it doesn’t know this parameter.
NOTE: to send the embedded vector to self.bert's upper layers, you need to input inputs_embeds instead of input_ids.
Please see the manual for reference on inputs_embeds vs. input_ids :
And you can see my Tensorflow example doing exactly like this.