It seems that you didn't tell your MeshWorker::IntegrationInfoBox object that you want to evaluate gradients of a finite element function on a cell.
To do this, you would use something similar to:
MeshWorker::IntegrationInfoBox<dim> info_box;
const unsigned int n_gauss_points = dof_handler.get_fe().degree+1;
info_box.initialize_gauss_quadrature(n_gauss_points, n_gauss_points, n_gauss_points);
info_box.initialize_update_flags();
dealii::UpdateFlags update_flags = ...
info_box.add_update_flags_all(update_flags);
info_box.cell_selector.add("solution", /*values*/ false, /*gradients*/ true, /*hessians*/ false);
dealii::AnyData src_data ;
src_data.add<const Vector<double> *>(&solution,"solution");
info_box.initialize(fe,mapping,src_data, solution);
If this does not solve your problem, it would be great if you come up with a minimal example showing your problem.
Best,
Daniel