On 14th June the recruiter called and asked for the start date of the contract and I provided 02 July thinking that would give 2 weeks of notice to my current employer. However I didnít got the contract until 19th June hence then I asked agency to delay start date to 04 July so that would give 2 weeks of notice to my current employer. My request for start date as 04 July was denied by agent saying work order has been released.

I signed contract with recruitment agency on 19th June 2018 with the contract start date as 01/07/2018. Hence I resigned from the current contract on 19th June giving 29th June (Friday) as the last working day.

On 29th June (Friday, the day before contract start) recruiter said not to start on 2nd July (Monday) as the necessary Entry Level Check (ELC) is not completed yet. Now agency says I canít start until ELC is completed (I wasnít this told before) and wait for his call for my start date.

As of now I canít start working and losing income.

I did have a chat couple of my friendís contract and permanent who confirmed ELC usually takes 1 week. Itís highly unlikely to continue for 3 weeks or more. Also since I was already contracting with another Federal government I would already have check done. So the processing time should be around 1 week. My friend was allowed to start whilst ELC was still in process but he didnít got building and computer access. He would need to be escorted in/out of building.

1) Is it legal for agency to disobey start date after signing the contract? Keeping in mind he denied my request for 04 July start date.
2) What are my rights at this stage? Can I ask for compensation for loss of income for no fault of mine.
3) How could situation like this be avoided?

You haven't told us the nature of your employment contract, and I think that is a critical factor in this matter.

If you and the agency signed a full-time or part-time hours contract, then the contract should provide guaranteed hours of work each day (or on specified days) from the commencement date of the contract. That means that you, the employee, are obliged to present yourself to perform the work for which you have been employed (unless on approved leave), and the employer is obliged to provide duties for you to perform. If the employer unilaterally decided to prevent you from working, and earning your income, then it seems that you have an arguable case to receive payment anyway. However, if your employer says that you "agreed" to defer your start date, this would make your case harder to prove.

Conversely, if you signed a contract for casual work (no fixed hours, working "as required") then the situation would be quite different. The employer is under no obligation to provide work for you to perform. That, unfortunately, is the nature of casual employment, and the uncertainty of the work is supposed to be offset (or partly offset) by a higher hourly rate of pay than permanent employment would attract.

Please note that this answer is provided without having full details of your situation available to me, and therefore cannot be a definite statement of your rights and entitlements. If you need to pursue the matter further, and haven't got a satisfactory response from your employer, then you may need to provide all details to an employment lawyer for formal advice.