Sorry to resurrect an old thread, but I've come across the same issue.
The docs relating to ConnectionSignUp say:
If execute() returns null, then it indicates that the user could not be implicitly signed up. In that case, ProviderSignInController's explicit sign up flow will be in effect and the browser will be redirected to the sign up form.
Yet you say:

Originally Posted by
Keith Donald
Your ConnectionSignUp implementation is returning null and that's not allowed at the moment...
Is the code going change to allow returning null or are the docs out of date? Or have I completely missed something?
Looking into the code, to be compliant with the docs it seems the findUserIdsWithConnection in JdbcUsersConnectionRepository needs to be altered to do this sort of thing:
Code:
public List<String> findUserIdsWithConnection(Connection<?> connection) {
ConnectionKey key = connection.getKey();
List<String> localUserIds = jdbcTemplate.queryForList("select userId from " + tablePrefix + "UserConnection where providerId = ? and providerUserId = ?", String.class, key.getProviderId(), key.getProviderUserId());
if (localUserIds.size() == 0) {
if (connectionSignUp != null) {
String newUserId = connectionSignUp.execute(connection);
// START EDIT
if(newUserId == null) {
return Collections.emptyList();
}
// END EDIT
createConnectionRepository(newUserId).addConnection(connection);
return Arrays.asList(newUserId);
}
}
return localUserIds;
}
Thanks in advance.