@@ -285,7 +285,7 @@ private void createApiKeyAndIndexIt(Authentication authentication, CreateApiKeyR
285285 indexResponse -> listener .onResponse (
286286 new CreateApiKeyResponse (request .getName (), indexResponse .getId (), apiKey , expiration )),
287287 listener ::onFailure ))));
288- } catch (IOException e ) {
288+ } catch (Exception e ) {
289289 listener .onFailure (e );
290290 }
291291 }
@@ -334,8 +334,17 @@ XContentBuilder newDocument(SecureString apiKey, String name, Authentication aut
334334 builder .endObject ();
335335
336336 builder .field ("name" , name )
337- .field ("version" , version .id )
338- .field ("metadata_flattened" , metadata )
337+ .field ("version" , version .id );
338+ final Version masterNodeVersion = clusterService .state ().nodes ().getMasterNode ().getVersion ();
339+ if (masterNodeVersion .onOrAfter (Version .V_7_13_0 )) {
340+ builder .field ("metadata_flattened" , metadata );
341+ } else {
342+ if (metadata != null && false == metadata .isEmpty ()) {
343+ throw new IllegalArgumentException (
344+ "api key metadata requires master node to be on version [7.13] or later, got [" + masterNodeVersion + "]" );
345+ }
346+ }
347+ builder
339348 .startObject ("creator" )
340349 .field ("principal" , authentication .getUser ().principal ())
341350 .field ("full_name" , authentication .getUser ().fullName ())
0 commit comments