What you were expecting:
When editing a record with a required ArrayInput, if I remove all the items in the input, the form should not be validated.
What happened instead:
If I remove all the items, the form is valid and I can submit the form.
Steps to reproduce:
// PostEdit.js
<ArrayInput source="backlinks" validate={[required()]}>
<SimpleFormIterator>
<DateInput source="date" />
<TextInput source="url" />
</SimpleFormIterator>
</ArrayInput>
Other information:
Environment
To me, it is supposed to be validate={[required()]} and not validate={required()}.
With that extra array, the validator works on your CodeSandbox.
Did you see any documentation that shows the contrary?
I did not know that [required()] is an acceptable input. I tested it but the results seem to be the same: I'm still able to remove all of the backlinks and submit the form without errors.
Oh your right, I reproduced it! My bad
Next time, please follow the bug issue template, it helps us a lot.
EDIT: I edited the issue to follow the bug report template. Your bug is confirmed, thanks for reporting it!
I fixed this on v3 already
Ah my bad it was in PR I closed. I will fix it soon
On 3.0.0-alpha.3 using <ArrayInput source="prices" validate={[required()]}> results in TypeError: validateProp is not a function.
Using <ArrayInput source="prices" validate={required()}> marks the ArrayInput as required but without really enforcing it:

As you can see the Array is rendered as required with the * but I can still submit an ArrayInput with 0 elements.
On a related note: from the previous screenshot you can see the "name" field is required too but react-admin allows it to be submitted only to return the error Invariant Violation: Objects are not valid as a React child (found: object with keys {name}). If you meant to render a collection of children, use an array instead.
This is still on 3.0.0-alpha.3, I'm not sure if I should open another bug report.
Fixed by #3601
@fzaninotto I know this has been closed but the problem in my previous comment is still there. Simple explanation: if any field inside an ArrayInput has the required validator but it is left empty the form is still submitted only to land on another page showing the Invariant Violation of my previous post.
Should I open another issue report?