You can capture the server utilization by yourself too either use the Jmeter plugin
http://jmeter-plugins.org/wiki/StandardSet/
this will provide you the CPU, Memory, Network I/O etc. utilization of the server and then you can check whether any of these things are creating bottleneck for you. may be you will find that on increasing the number of users from 15 to 20, CPU usage goes beyond 90% which is too high.
For resource utilization if you don't want to use the plugin then you can use the 'Perfmon' inbuilt tool of windows (but only if you have Windows based server).
Another is to verify which URL out of the 10 under test is creating a bottleneck i.e. 500 error is being reported by which URL and then your probability of finding URL for debugging will increase.
You can also contact the Developer or IT-Admin team to ask, if the server is blocking more than 15 requests from the same IP, may be your application does not allow this thing, so for load testing you need to get this thing turned-off from the Load Test server (we sometimes have to do such tweaking for load testing), as some application and some times IT team deliberately apply this kind of setting to block multiple requests from single IP, just to keep network traffic in control and prevent unwanted requests hitting servers for security reasons.
One more way of debugging is increase your load in stepped way i.e. try running your script for 1, 5, 7, 10, 15, 17, 20 users load and see the Throughput graph of your results, if it shows a parabolic path or you may observe that every time your Throughput increases up to 15 users but for 17 and 20 users it goes on decreasing then, you hit the break point and your server is not capable of handling more than 15 requests. In that case try upgrading the hardware e.g. add some Memory or an extra core for handling more users and then again execute your script.