When you run a tool and share the result as a geoprocessing service the geometry type for the service is set to match the layer geometry of the input layer supplied to the tool. For example if you select a polyline layer as the input layer the resulting GP service has a Geometry Type: esriGeometryPolyline. The tool will accept any type of geometry and runs as expected in ArcMap; it is a simple python script tool with one featureclass input and a file output. When the geoprocessing service is subsequently used in the Web App Builder geoprocessing widget the widget will only accept polyline layers as input reflecting the published state of the tool as it was last executed.
How does one create and publish a Geoprocessing Service from a script tool to accept any type of geometry not the last one used?