From ea328004db0c0716239304fb70eb482987f3f454 Mon Sep 17 00:00:00 2001 From: andre-gielow-ttd <124626380+andre-gielow-ttd@users.noreply.github.com> Date: Thu, 24 Jul 2025 07:56:38 -0400 Subject: [PATCH] TheTradeDesk throw error for malformed endpoint url (#4047) --- .../bidder/thetradedesk/TheTradeDeskBidder.java | 5 +++++ .../thetradedesk/TheTradeDeskBidderTest.java | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidder.java b/src/main/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidder.java index 99f5eda1ec2..e047a077599 100644 --- a/src/main/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidder.java +++ b/src/main/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidder.java @@ -89,6 +89,11 @@ public Result>> makeHttpRequests(BidRequest request } } + if (StringUtils.isBlank(sourceSupplyId) && StringUtils.isBlank(supplyId)) { + return Result.withError( + BidderError.badInput("Either supplySourceId or a default endpoint must be provided")); + } + final BidRequest outgoingRequest = modifyRequest(request, modifiedImps, publisherId); final HttpRequest httpRequest = BidderUtil.defaultRequest( outgoingRequest, diff --git a/src/test/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidderTest.java b/src/test/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidderTest.java index 021bca5617a..a292ac6d385 100644 --- a/src/test/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidderTest.java +++ b/src/test/java/org/prebid/server/bidder/thetradedesk/TheTradeDeskBidderTest.java @@ -186,6 +186,21 @@ public void makeHttpRequestsShouldReturnErrorWhenImpExtCouldNotBeParsed() { assertThat(result.getValue()).isEmpty(); } + @Test + public void makeHttpRequestsShouldReturnErrorWhenBothSupplySourceIdAndSupplyIdAreNull() { + final TheTradeDeskBidder bidderWithNullSupplyId = new TheTradeDeskBidder(ENDPOINT_URL, jacksonMapper, null); + final BidRequest bidRequest = givenBidRequest( + identity(), + imp -> imp.ext(impExt("publisher", null))); + + final Result>> result = bidderWithNullSupplyId.makeHttpRequests(bidRequest); + + assertThat(result.getErrors()).hasSize(1); + assertThat(result.getErrors().getFirst().getMessage()) + .isEqualTo("Either supplySourceId or a default endpoint must be provided"); + assertThat(result.getValue()).isEmpty(); + } + @Test public void makeHttpRequestsShouldReturnSiteWithExtImpPublisherWhenSiteAndAppArePresent() { final BidRequest bidRequest = givenBidRequest(