Before Higginbotham, Southwick, and Higginson, Circuit Judges. Stephen A. Higginson, Circuit Judge: Defendant-appellant Copart of Connecticut appeals the district court’s grant of summary judgment in favor of plaintiffs-appellees Liberty Mutual Fire Insurance Company and Liberty Insurance Corporation. For the following reasons, we affirm in part and reverse in part. I. Copart of Connecticut, Inc. (“Copart”) is a subsidiary of Copart, Inc., an online car-auction company that sells used, wholesale, and repairable vehicles. Copart owns several parcels of land in Lexington County, South Carolina, on which it operates “machine salvage junkyard and vehicle wash facilities.” This appeal concerns whether Copart’s insurer must defend or indemnify Copart with respect to a lawsuit filed against it in South Carolina. A. On October 14, 2016, eight property-owner plaintiffs (the “Livingston Plaintiffs”) sued Copart in South Carolina state court. The case was later removed to theU.S. District Court for the District of South Carolina. In their complaint, the Livingston Plaintiffs allege that they own properties located near Copart’s land and that Copart’s operations have damaged their properties. Specifically, the Livingston Plaintiffs allege that a continuously flowing spring-fed stream, Tom’s Creek, originates “on or directly east” of one of Copart’s properties and that this creek system runs through, or feeds wetlands on, the Plaintiffs’ properties. They allege that wrecked and salvaged vehicles and machines stored on unpaved lots on Copart’s property are “variously leaking gasoline, oil, hydraulic fluids, antifreeze, and other hazardous fluids and materials into the soil.” According to the Livingston Plaintiffs’ complaint, “[d]uring any significant rainfall event, water, soil, sediment and hazardous materials and chemicals are washed from the Copart property into Tom’s Creek ultimately through the Plaintiffs’ properties.” They allege that this has “dramatically changed the nature of [their] property,” by way of “aesthetic[]” damage “ in the form of cloudy water for several days, after each rainfall event,” and a “negative[] impact[]” on the “ flora and fauna in and around streams and ponds on Plaintiffs’ property.” The Livingston Plaintiffs further allege that “scientific testing conducted on a variety of samples from points on the periphery of [Copart]‘s property and within the Tom Creek’s watershed, reveal alarming levels of heavy-metals and other dangerous elements.” The Livingston Plaintiffs allege that these samples show “large concentrations of aluminum, lead, titanium, arsenic, and copper throughout,” and that “[t]hese are the same elements found within various components of motor vehicles, such as batteries, radiators and fuel.” The Livingston Plaintiffs allege violations of the Resource Conservation and Recovery Act, the Clean Water Act, and the South Carolina Pollution Control Act, as well as claims for negligence, negligence per se, nuisance, and trespass. B. During the relevant periods, Copart held insurance policies with Liberty Mutual Fire Insurance Company (“LMFIC”) and Liberty Insurance Corporation (“Liberty Insurance”) (collectively, “Liberty”). Copart and Liberty dispute whether, in light of certain “pollution” exclusions in the relevant policies, Liberty has a duty to defend or indemnify Copart with respect to the South Carolina case (the “Underlying Suit”).[1] LMFIC issued five commercial general liability (“CGL”) policies to Copart, for policy periods spanning from 2012 to 2017. The parties agree that the policies are substantively identical in relevant part. Coverage A of the CGL policies provides that LMFIC will pay those sums that the insured becomes legally obligated to pay as damages because of “bodily injury” or “property damage” to which this insurance applies. We will have the right and duty to defend the insured against any “suit” seeking those damages. However, we will have no duty to defend the insured against any “suit” seeking damages for “bodily injury” or “property damage” to which this insurance does not apply. This coverage is subject to an exclusion for damages caused by pollution. Specifically, Coverage A, as amended by an endorsement, excludes from coverage any “‘[b]odily injury’ or ‘property damage’ which would not have occurred in whole or part but for the actual, alleged or threatened discharge, dispersal, seepage, migration, release or escape of ‘pollutants’ at any time.” The policies define “pollutants” as “any solid, liquid, gaseous or thermal irritant or contaminant, including smoke, vapor, soot, fumes, acids, alkalis, chemicals and waste.” “Waste includes materials to be recycled, reconditioned or reclaimed.” In addition to its CGL policies with LMFIC, Copart also purchased umbrella policies with Liberty Insurance for policy periods spanning from 2014 to 2017. The parties agree that the policies are substantively identical in relevant part. Under the umbrella policies, Liberty Insurance has “the right and duty to defend any ‘suit’ seeking damages covered by this insurance, . . . when: (1) [t]he total applicable limits of ‘underlying insurance’ have been exhausted by payment of judgments or settlements; or (2) [t]he damages sought because of ‘bodily injury[,'] ‘property damage’ or ‘personal and advertising injury’ to which this insurance applies would not be covered by ‘underlying insurance’ or ‘other insurance.’” The umbrella policies list the LMFIC CGL policies as “underlying insurance.” Like the CGL policies, the umbrella policies contain in an endorsement an exclusion for damages caused by pollution.[2] The pollution endorsement also modifies the duty to defend with respect to pollution-related damages. It provides that, “[f]or the purposes of this endorsement,” Liberty Insurance “will have the right and duty to defend any ‘suit’ seeking damages covered by this insurance, . . . if the ‘retained limit’ has been exhausted by payment of damages that would be covered by this endorsement.’” The “retained limit” for purposes of the endorsement is $1,000,000. C. On November 18, 2019, Liberty filed a declaratory action against Copart in the U.S. District Court for the Northern District of Texas. Liberty alleged in its complaint that LMFIC was “currently defending Copart in the Underlying Suit pursuant to its reservation of rights and [sought], by this action, a declaration that it has a right to withdraw that qualified defense.” Liberty cited the Livingston Plaintiffs’ pleadings, and the pollution exclusion in its CGL and umbrella policies, and asked the court for, inter alia, a declaration that Liberty has “no duty to defend or indemnify Copart or any other person in connection with the claims asserted in the Underlying Suit and therefore ha[s] no duty to pay any portion of the defense costs incurred or paid by any person in connection with the Underlying Suit.” Liberty later moved for summary judgment seeking a declaration that it had no duty to defend or indemnify Copart as to the Underlying Suit. Copart filed an opposition to Liberty’s motion, as well as its own cross-motion for partial summary judgment on the duty to defend. The district court granted Liberty’s motion for summary judgment and denied Copart’s cross-motion. The court found that the pollution exclusion was unambiguous and that it was “clear” that the Livingston Plaintiffs alleged damages caused by pollutants, so Liberty had no duty to defend under the CGL policies. The court further found that there was no duty to defend under the umbrella policies because the $1,000,000 retained limit had not been exhausted. The court then found that, “[b]ecause Liberty Mutual has no duty to defend the Underlying Suit, it follows that it has no duty to indemnify.” Final judgment issued for Liberty the same day. Copart timely appealed, challenging the district court’s conclusions. II. A district court’s judgment on cross motions for summary judgment is reviewed de novo, “addressing each party’s motion independently, viewing the evidence and inferences in the light most favorable to the nonmoving party.” Siplast, Inc. v. Emps. Mut. Cas. Co., 23 F.4th 486, 492 (5th Cir. 2022) (per curiam) (citations omitted). We affirm a grant of summary judgment “only if there is no genuine issue of material fact and the party is entitled to prevail as a matter of law.” Id. (citation omitted). The court “may affirm a summary judgment on any ground supported by the record, even if it is different from that relied on by the district court.” Campos v. Steves & Sons, Inc., 10 F.4th 515, 520 (5th Cir. 2021) (citations omitted). The interpretation of insurance policies is reviewed de novo as well. Richard v. Anadarko Petroleum Corp., 850 F.3d 701, 707 (5th Cir. 2017) (citations omitted). The law of the forum state, Texas, applies in this diversity case. Siplast, 23 F.4th at 492 (citations omitted). “Under Texas law, an insurer may have two responsibilities relating to coverage—the duty to defend and the duty to indemnify.” Id. (quoting ACE Am. Ins. Co. v. Freeport Welding & Fabricating, Inc., 699 F.3d 832, 839 (5th Cir. 2012)). These two duties are distinct, and the duty to defend is generally broader than the duty to indemnify. Zurich Am. Ins. Co. v. Nokia, Inc., 268 S.W.3d 487, 490 (Tex. 2008). This is because “[a]n insurer must defend its insured if a plaintiff’s factual allegations potentially support a covered claim, while the facts actually established in the underlying suit determine whether the insurer must indemnify its insured.” Id. (emphasis added) (citation omitted). III. We first consider whether Liberty has a duty to defend Copart in the Underlying Suit. Whether an insurer has a duty to defend is a determination governed by the “eight-corners rule.” Siplast, 23 F.4th at 492 (citing Richards v. State Farm Lloyds, 597 S.W.3d 492, 494 (Tex. 2020)). Under the eight-corners rule, “an insurer’s ‘duty to defend is determined by the claims alleged in the petition and the coverage provided in the policy.’” Richards, 597, S.W.3d at 494 (quoting Pine Oak Builders, Inc. v. Great Am. Lloyds Ins. Co., 279 S.W.3d 650, 654 (Tex. 2009)). “The ‘four corners’ of the petition and the ‘four corners’ of the policy together comprise the ‘eight corners’ that give the rule its name.” Id. at 494-95. A court may not consider “facts ascertained before the suit, developed in the process of the litigation, or by the ultimate outcome of the suit” as part of its duty-to-defend determination. Canutillo Indep. Sch. Dist. v. Nat’l Union Fire Ins. Co. of Pittsburgh, 99 F.3d 695, 701 (5th Cir. 1996) (quoting Gulf Chem. & Metallurgical Corp. v. Associated Metals & Minerals Corp., 1 F.3d 365, 369 (5th Cir. 1993)); see also Am. Alliance Ins. Co. v. Frito-Lay, Inc., 788 S.W.2d 152, 153-54 (Tex. Ct. App. 1990). Nor may the court “imagine factual scenarios which might trigger coverage.” Waste Mgmt., Inc. v. AIG Specialty Ins. Co., 974 F.3d 528, 535 (5th Cir. 2020) (quoting Nat’l Union Fire Ins. Co. of Pittsburgh, Pa. v. Merchs. Fast Motor Lines, Inc., 939 S.W.2d 139, 142 (Tex. 1997) (per curiam)). The duty to defend “is determined by the third-party plaintiff’s pleadings, considered in light of the policy provisions, without regard to the truth or falsity of those allegations.” GuideOne Elite Ins. Co. v. Fielder Rd. Baptist Church, 197 S.W.3d 305, 308 (Tex. 2006) (citations omitted). The analysis focuses on the facts alleged in the pleadings, not the legal theories asserted. Evanston Ins. Co. v. Legacy of Life, Inc., 645 F.3d 739, 745 (5th Cir. 2011) (citations omitted). “[I]n case of doubt as to whether or not the allegations of a complaint against the insured state a cause of action within the coverage of a liability policy sufficient to compel the insurer to defend the action, such doubt will be resolved in insured’s favor.” Waste Mgmt., 974 F.3d at 535 (quoting Nat’l Union, 939 S.W.2d at 141). “If coverage is found for any part of a suit, the insurer must defend the entire suit.” Allstate Ins. Co. v. Disability Servs. of the Sw. Inc., 400 F.3d 260, 263 (5th Cir. 2005) (citations omitted). A. The CGL policies provide that Liberty has no duty to defend Copart in suits alleging harms to which the insurance under the policies does not apply. The policies exclude from coverage any damages that “would not have occurred in whole or part but for the actual, alleged or threatened discharge, dispersal, seepage, migration, release or escape of ‘pollutants’ at any time.” “Pollutants” are in turn defined as “any solid, liquid, gaseous or thermal irritant or contaminant, including smoke, vapor, soot, fumes, acids, alkalis, chemicals and waste.” As a threshold matter, Copart does not dispute that the CGL policies’ pollution exclusion is unambiguous as written. Courts applying Texas law have consistently interpreted pollution exclusions such as this to be absolute and unambiguous. See, e.g., Noble Energy, Inc. v. Bituminous Cas. Co., 529 F.3d 642, 646 (5th Cir. 2008) (“Texas courts have consistently held similar pollution exclusions to be unambiguous.” (first citing Nat’l Union Fire Ins. Co. v. CBI Indus., Inc., 907 S.W.2d 517, 521 (Tex. 1995); and then citing Zaiontz v. Trinity Universal Ins. Co., 87 S.W.3d 565, 571 (Tex. Ct. App. 2002)); see also Peleus Ins. Co. v. Ron Sparks, Inc., 2022 WL 4125222, at *3 (N.D. Tex. Sept. 8, 2022) (finding that an identically worded pollution exclusion was unambiguous). Nor is there a serious dispute that the pollution exclusion applies to at least some of the Livingston Plaintiffs’ allegations.[3] A review of the complaint against the language of the pollution exclusion confirms the exclusion’s applicability. The Livingston Plaintiffs allege that Copart’s activities have led to the discharge of various hazardous materials and chemicals, including, inter alia, gasoline, oil, antifreeze, hydraulic fluids, lead, and arsenic, that have in turn caused aesthetic harm in the form of cloudy water and physical harm to nearby flora and fauna. The complaint thus includes many allegations that fit within the CGL policies’ pollution exclusion—that is, allegations of damage resulting “in whole or part” from Copart’s “discharge, dispersal, seepage, migration, release or escape of” materials including “chemicals and waste.” The central dispute here is whether the Livingston Plaintiffs have alleged any facts that do not fall within the pollution exclusion. To get around the exclusion, Copart must identify allegations of harm by non-pollutants alone. We reiterate that the exclusion negates coverage for harms that “would not have occurred in whole or part but for” pollutants. Given the breadth of the exclusion, Copart must identify allegations in the Livingston complaint that are confined to non-pollutants. If the complaint contains such allegations, then the suit triggers Liberty’s duty to defend, despite that the other allegations in the complaint may be excluded. Evanston Ins. Co., 645 F.3d at 745 (“If any allegation in the complaint is even potentially covered by the policy then the insurer has a duty to defend its insured.” (emphasis in original) (citation omitted)). In search of non-excluded allegations, Copart points out that the Livingston Plaintiffs’ complaint names “30+ independent substances,” including some non-pollutants such as water, soil, and sediment. Copart relies, in various ways, on the complaint’s allegations regarding these substances to argue that the Underlying Suit contains allegations not excluded from coverage by the pollution exclusion, thereby triggering Liberty’s duty to defend. None of Copart’s arguments is persuasive. First, Copart asserts that Liberty unjustifiably reads the Livingston Plaintiffs’ allegations to refer to a “composite,” “inseparable” substance— namely, polluted water—that damaged the Livingston Plaintiffs’ properties. Copart contends that the Livingston Plaintiffs’ complaint is better read as alleging harm from a long list of “independent” substances, some of which are pollutants and some of which are not. Read this way, Copart argues, the Livingston Plaintiffs’ complaint alleges harm from non-pollutants alone. But this argument is meritless. Copart is correct that the complaint mentions many different substances, some of which, like water, may indeed be non-pollutants.[4] But it exceeds the bounds of plausibility to interpret the complaint as alleging “independent” harm by the non-pollutant substances. The narrative thrust of the complaint is that rainfall carries pollutant-laden stormwater from Copart’s properties to the plaintiffs’ properties and thereby causes them harm. The water is indeed alleged to include some non-pollutants like soil, sediment, dirt, rock, and sand, but the water is also consistently and repeatedly alleged to include “hazardous materials and chemicals” and “chemical waste.” With only one discernible exception, discussed infra, Copart cites no specific allegation from the complaint supporting its position that the pleading can be read to allege harm by non-polluted water alone.[5] Detached from the allegations as written, Copart instead argues that the non-pollutant substances “could,” in fact, “potentially be the damage-causing culprit,” i.e., “the source of at least some of the damage alleged by the Underlying Plaintiffs.” Copart asserts that “[n]on-polluted stormwater flowing from Copart’s property after a significant rain event could stir up [non-pollutant] substances . . . resulting in cloudy water” on the Livingston Plaintiffs’ properties, and that such a “possibility is entirely compatible with the allegations in the Livingston Complaint.” But these arguments are out of bounds on the duty-to-defend analysis, under which the court may not “imagine factual scenarios which might trigger coverage.” Waste Mgmt., 974 F.3d at 535 (quoting Nat’l Union, 939 S.W.2d 139 at 142). The duty to defend is governed by the allegations in the complaint, and the complaint alleges harm by water laden with pollutants. Finally, Liberty’s interpretation of the complaint—i.e., “composite” stormwater laden with various substances including pollutants, rather than “30+ independent substances,” any or all of which allegedly caused harm— is broadly consistent with this court’s decision in Noble Energy, 529 F.3d at 642. There, the court found that a pollution exclusion applied to negate the insurer’s duty to defend where the underlying plaintiffs alleged damage from “a mixture of highly flammable gas condensate and presumably innocuous basic sediment and waste.” Id. at 647 (emphasis added). As in Noble, that the alleged water contains some “presumably innocuous” materials does not push the complaint’s allegations outside the scope of the pollution exclusion. For these reasons, the district court did not err in declining to read into the complaint allegations of “independent” harm by non-pollutants alone. In a similar vein, Copart argues that the Livingston Plaintiffs allege damage caused by “various naturally occurring materials . . . in the stormwater” that are not pollutants under the CGL policies. Specifically, Copart contends that water, soil, sediment, dirt, rock, sand nutrients, biological material, and “other matter” are “indigenous to—indeed, prevalent in—the geographical area where the Copart and Underlying Plaintiffs’ properties are located and are not ‘pollutants.’” Copart cites non-Texas cases for the proposition that the pollution exclusion does not apply to substances like these and contends that the Livingston Plaintiffs’ allegations mentioning these substances give rise to a duty to defend. But this argument rests on the faulty premise that we have already rejected. It does not matter if these “indigenous” substances are not pollutants under the policy because, as explained, the complaint alleges harm by stormwater laden with both non-pollutants and pollutants. And the pollution exclusion covers harms caused “in whole or part” by pollutants. Copart cites no allegations of harm by these “indigenous” substances alone. And again, Copart transgresses the limits of the duty-to-defend inquiry when it asserts that, as a matter of fact, the cloudy water on the Livingston Plaintiffs’ properties “could have been caused by the discharge and movement of these natural, indigenous substances.” It is the allegations in the pleadings, not hypothetical facts, that dictate our analysis. Waste Mgmt., 974 F.3d at 535. In seeking to show that Liberty has a duty to defend, Copart emphasizes one specific allegation in the complaint above all else. In paragraph 118 of the complaint, which Copart dubs the “Water Trespass Allegation,” the Livingston Plaintiffs allege that Copart’s “actions constitute a trespass by encroachment of water, sediment, and other matter onto Plaintiffs’ property.” Copart contends that this paragraph “alleges water as a cause of damage, clearly triggering Liberty Mutual’s duty to defend.” In other words, the argument goes, the Livingston Plaintiffs allege trespass caused by water alone, and water is a non-pollutant. While the quoted allegation may admit of such an interpretation if read in isolation, “Texas law requires us to consider the allegations in the complaint along with any reasonable inferences that flow from the facts alleged”—that is, “all the facts alleged in combination”—when assessing the duty to defend. Liberty Mut. Ins. Co. v. Graham, 473 F.3d 596, 601-02 (5th Cir. 2006) (citing Allstate Ins. Co. v. Hallman, 159 S.W.3d 640, 645 (Tex. 2005)). And the context surrounding this allegation defeats Copart’s proffered interpretation. The so-called Water Trespass Allegation issituated in a seven-paragraph cause of action asserting that Copart’s conduct satisfies the legal elements of trespass. The paragraph immediately preceding the cited allegation alleges that Copart has caused “harmful material to enter and flow onto Plaintiffs’ properties by permitting its improperly controlled stormwater, laden with soil, sediment, chemicals and other pollutants, to be discharged onto Plaintiffs’ properties.” Similarly, the very next paragraph alleges that Copart “knew or should have known that their activities in failing to properly manage their industrial and land disturbance activities in close proximity to Plaintiffs’ property would, to a substantial certainty, result in the discharge of stormwater laden with soil, sediment, and harmful chemicals onto the property of Plaintiffs.” The next two paragraphs each allege, again, that Copart is responsible for “stormwater laden with soil, sediment, and harmful chemicals on[] Plaintiffs’ properties . . . .” This context instructs that the “water, sediment, and other matter” referred to in paragraph 118 is the same pollutant-laden stormwater that is the subject of the rest of the trespass allegation. Indeed, this polluted stormwater is discussed throughout the complaint; paragraph 118 simply uses language that is less precise than other parts of the complaint. And although Copart urges us to resolve all doubts about this allegation in its favor, given the context and the inferences it yields, “the facts alleged” in this one phrase, in this one paragraph, “do not create that degree of doubt which compels resolution of the issue for the insured.” Nat’l Union, 939 S.W.2d at 142.[6] For the foregoing reasons, we affirm the district court’s conclusion that the Underlying Suit does not trigger Liberty’s duty to defend under the CGL policies. B. Copart also contends that Liberty has a separate duty to defend under the umbrella policies. We disagree. The relevant endorsement in the umbrella policies provides that Liberty “will have the right and duty to defend any ‘suit’ seeking damages covered by this insurance, . . . if the ‘retained limit’ has been exhausted by payment of damages that would be covered by this endorsement.’” The “retained limit” is $1,000,000. The parties do not dispute that the retained limit has not been exhausted. This would appear to end this court’s inquiry as to the umbrella policies: the duty to defend the Underlying Suit does not attach unless and until the limit has been exhausted, and it has not been exhausted. Copart attempts to get around this fact in two ways. First, Copart contends that the district court erred in granting summary judgment on this basis because Liberty did not raise the retained-limit issue in its motion for summary judgment. But even though Copart is right about Liberty’s initial omission,[7] this argument is unavailing. The district judge “is free to grant summary judgment on the basis of any facts shown by competent evidence in the record.” United States v. Hous. Pipeline Co., 37 F.3d 224, 227 (5th Cir. 1994) (citations omitted). And in any event, this court in its appellate role “may affirm a summary judgment on any ground supported by the record.” Campos, 10 F.4th at 520, 526 (citations omitted). The retained-limit argument and the supporting portions of the record are fully before this court. Copart cites this court’s decision in Federal Deposit Insurance Corp. v. Laguarta, 939 F.2d 1231 (5th Cir. 1991) for the proposition that, while we generally may affirm summary judgment on a ground not relied upon below, Liberty’s failure to raise the retained limit as a ground for summary judgment means that this court may not rely on it to affirm summary judgment on appeal. But Laguarta‘s holding is more qualified than Copart implies. The court in Laguarta held that it would be improper “under the circumstances of th[at] case to affirm a summary judgment on . . . grounds that were neither raised below by [the appellee] nor even raised sua sponte by the district court,” because “the parties were not afforded an opportunity to develop the issue below, and it was not implicit or included in the issues or evidence tendered below.” Id. at 1240. In such a case, the opposing party may lack notice of the issue, and the record may be inadequately developed in relevant respects. Id. These are not the circumstances here. The parties here had an opportunity to develop the retained-limit issue below, and it was the entire basis of the district court’s ruling as to the umbrella policies. There is no suggestion that the record is inadequately developed on this issue, which merely requires the court to read an insurance policy. Copart argues in the alternative that the retained-limit provision is without effect. It contends that the provision is found in an endorsement (#8) that conflicts with a different endorsement (#14) in the umbrella policies, and that this conflict generates an ambiguity that must be resolved in favor of Copart. The asserted conflict is as follows. The umbrella policies’ main coverage form provides, in Section 1.b, that Liberty’s duty to defend is triggered when (a) Copart’s underlying insurance has been exhausted, or (b) Copart’s underlying insurance does not cover a claim but the umbrella insurance does. Endorsement #14, titled “Duty to Defend Amendment,” modifies one sentence in Section 1.b, but not the provisions just cited. Specifically, Endorsement #14 replaces the sentence, “However, we have no duty to defend any ‘suit’ if any other insurer has a duty to defend all or a portion of that ‘suit,’” with the sentence, “However, we have no duty to defend any ‘suit’ against the insured if any other insurer has a duty to defend the insured against all or a portion of that ‘suit.’” Endorsement #14 makes no other change to Section 1.b. Endorsement #8, titled “Combined Named Peril and Time Element Pollution Liability Coverage—with Duty to Defend and Products-Completed Operations Amendment,” also modifies Section 1.b. And unlike Endorsement #14, Endorsement #8 modifies Section 1.b’s duty-to-defend criteria. Specifically, it provides that, “[f]or the purposes of this endorsement,” the duty to defend is triggered not by criteria (a)and (b) listed above, but instead “if the ‘retained limit’ has been exhausted by payment of damages that would be covered by this endorsement.’” “[T]his endorsement” consists of a pollution exclusion, as well as a series of exceptions to the exclusion. Endorsement #8 uses the “other insurer” sentence as modified by Endorsement #14 (rather than the sentence from the primary coverage form), and otherwise leaves the rest of Section 1.b unchanged. Copart contends that these two endorsements conflict. It argues that Endorsement #14 provides for a duty to defend if the underlying insurance excludes coverage (here, via the CGL policies’ pollution exclusion) and the umbrella policies provide coverage (here, via a particular exception to the pollution exclusion not found in the CGL policies). Endorsement #8, on the other hand, provides for a duty to defend only if the retained limit has been exhausted. Copart cites case law suggesting that conflicting endorsements to an insurance policy generate an ambiguity as a matter of law that must be resolved in favor of the insured. See INA of Tex. v. Leonard, 714 S.W.2d 414, 417 (Tex. Ct. App. 1986) (finding that two conflicting endorsements created an ambiguity that had to be resolved in favor of coverage for the insured); Pogo Res., LLC v. St. Paul Fire & Marine Ins. Co., No. 19-2682, 2022 WL 209276, at *15 (N.D. Tex. Jan. 24, 2022) (“When, as here, an endorsement narrowing coverage creates ambiguity by conflicting with an endorsement expanding coverage, the construction that affords coverage to the insured governs.”). But Copart’s argument ignores the language of the endorsements, as well as fundamental principles of insurance-policy interpretation. Under Texas law, when interpreting an insurance contract, the court “must read all parts of the contract together, giving effect to each word, clause, and sentence, and avoid making any provision within the policy inoperative.” State Farm Lloyds v. Page, 315 S.W.3d 525, 527 (Tex. 2010). Endorsements to insurance policies should not be read into meaninglessness. See Primrose Operating Co. v. Nat’l Am. Ins. Co., 382 F.3d 546, 559 (5th Cir. 2004). Here, the two endorsements can be interpreted in a way that gives effect to each. Endorsement #14 modifies Section 1.b as to Liberty’s duty to defend Copart in circumstances where another insurer has such a duty. This is the only modification that Endorsement #14 makes to Section 1.b. The endorsement is general in scope and does not purport to attach to any particular types of claims. Endorsement #8, on the other hand, modifies the duty to defend only as to claims that are covered by that endorsement, i.e., pollution claims. The modification begins with the phrase, “For the purposes of this endorsement.” Copart does not acknowledge this limitation on the endorsement’s scope. Accordingly, Endorsement #14 is best read as modifying the general duty-to-defend provisions of the umbrella policy, while Endorsement #8 is best read as modifying the duty-to-defend provisions only for claims implicated by that endorsement, i.e., for pollution-related damages. Copart’s perception of ambiguity ignores the plain language of the endorsements, and its proposed construction reads parts of the endorsement—namely, the retained-limit provision in Endorsement #8— out of the policy, in contravention of Texas law. Page, 315 S.W.3d at 527; Primrose Operating Co., 382 F.3d at 559. For the foregoing reasons, we affirm the district court’s conclusion that Liberty has no duty to defend under the umbrella policies. * * * Because Liberty has no duty to defend Copart under the CGL policies or the umbrella policies, we affirm summary judgment in favor of Liberty as to its duty to defend. IV. Copart also appeals the district court’s grant of summary judgment in favor of Liberty as to Liberty’s duty to indemnify. “In Texas, an insurer’s duties to defend and indemnify its insured are ‘distinct and separate duties.’” Colony Ins. Co. v. Peachtree Const., Ltd., 647 F.3d 248, 252 (5th Cir. 2011) (quoting Trinity Universal Ins. Co. v. Cowan, 945 S.W.2d 819, 821-22 (Tex. 1997)). While the duty to defend is determined “solely by the facts alleged in the petition and the terms of the policy,” the duty to indemnify “generally cannot be ascertained until the completion of litigation, when liability is established, if at all.” Id. at 253 (citations omitted). In this way, “[t]he difference between the two [duties] is a matter of timing.” Id. Here, the district court addressed Liberty’s duty to indemnify Copart in one sentence, writing that, “[b]ecause Liberty Mutual has no duty to defend the Underlying Suit, it follows that it has no duty to indemnify.” In so holding, the court cited American States Insurance Co. v. Bailey, 133 F.3d 363 (5th Cir. 1998), in which this court wrote that “[l]ogic and common sense dictate that if there is no duty to defend, then there must be no duty to indemnify.” Id. at 368. But this ipso facto rule has been abrogated in the years since Bailey. As this court later explained in Peachtree: In many cases an insurer may have a duty to defend but, eventually, no duty to indemnify. This has led some courts to observe that in Texas the duty to defend is broader than the duty to indemnify, because an insurer is obligated to defend whenever there is any potential basis for liability under the policy, while the duty to indemnify may never be realized. Other courts have run with this concept, erroneously holding that because the duty to defend is broader than the duty to indemnify, there can be no duty to indemnify absent a duty to defend. 647 F.3d at 253-54 (cleaned up) (citations omitted). Thus, the assumption that the duty to indemnify cannot exist where there is no duty to defend is “faulty.” Id. at 254. Indeed, the court in Peachtree noted that the Texas Supreme Court had recently “clarified that an insurer may have a duty to indemnify even though the duty to defend never arises.” Id. (citing D.R. Horton-Texas, Ltd. v. Markel Int’l Ins. Co., 300 S.W.3d 740, 744-45 (Tex. 2009)). Accordingly, in Peachtree, “the district court’s summary judgment for [the insurer] was both premature and incorrect.” 647 F.3d at 255. Such are the circumstances here. The district court granted summary judgment for Liberty on its duty to indemnify while the Underlying Suit remained pending. In this regard, summary judgment was premature. Moreover, the district court found no duty to indemnify solely because it had found that Liberty had no duty to defend. In this sense, summary judgment was based on a “faulty assumption” and was incorrect. “[T]he facts adduced at trial might differ from the allegations, and thus, a duty to indemnify could be shown notwithstanding the absence of a duty to defend.” Id. at 254. Liberty cites the Texas Supreme Court’s decision in Farmers Texas County Mutual Insurance Co. v. Griffin, 955 S.W.2d 81 (Tex. 1997) for the proposition that the duty to indemnify may be “justiciable before the insured’s liability is determined in the liability lawsuit when the insurer has no duty to defend and the same reasons that negate the duty to defend likewise negate any possibility the insurer will ever have a duty to indemnify.” In Griffin, for instance, the court explained that “[n]o facts c[ould] be developed in the underlying tort suit that c[ould] transform a drive-by shooting into an ‘auto accident,’” for the purposes of coverage. Id. A no-indemnity finding before resolution of the underlying lawsuit was therefore appropriate. But this is not such a case. The duty to defend is negated here because the Livingston Plaintiffs only allege damage caused, either in whole or in part, by pollutants. But evidence arising from or related to the Underlying Suit may reveal that non-pollutants caused the plaintiffs’ damage.[8] Indeed, it is here that Copart’s theories regarding the factual cause of the Livingston Plaintiffs’ injuries—not germane to the duty-to-defend question—come to hold water. If, for example, relevant evidence shows that the plaintiffs’ “cloudy water” was caused only by sand and sediment, then the pollution exclusion may not apply. If this were so, Liberty may be obligated to indemnify Copart. Indeed, over-application of Griffin is precisely what the Texas Supreme Court reined in when it decided D.R. Horton. The court wrote: [The insurer] reasons that if the terms of the policy, when read in light of the allegations asserted in the petition, do not give rise to a duty to defend, then proof of all of those allegations could not give rise to a duty to indemnify. It relies on Griffin for this proposition, but the holding in Griffin was fact-specific and cannot be construed so broadly. . . . [Griffin's] conclusion was grounded on the impossibility that the drive-by shooting in that case could be transformed by proof of any conceivable set of facts into an auto accident covered by the insurance policy. It was not based on a rationale that if a duty to defend does not arise from the pleadings, no duty to indemnify could arise from proof of the allegations in the petition. These duties are independent, and the existence of one does not necessarily depend on the existence or proof of the other. 300 S.W.3d at 744-45 (citations omitted). We heed this guidance and decline Liberty’s invitation to apply the Griffin holding to this case. As discussed above, this is not a case where no “conceivable set of facts” could give rise to coverage. We therefore reverse summary judgment as to indemnity and remand for factfinding to determine Liberty’s duty to indemnify Copart with respect to the Underlying Suit. V. We AFFIRM summary judgment as to Liberty’s duty to defend Copart in the Underlying Suit. We REVERSE summary judgment as to Liberty’s duty to indemnify Copart with respect to the Underlying Suit and REMAND to the district court for further proceedings to determine Liberty’s indemnity obligation, if any.